home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Everything For A Hacker
/
19990506-[HACK].iso
/
HEXEDIT
/
ASM_DOC.ZIP
/
TD.DOC
/
CHAP14.TXT
< prev
next >
Wrap
Text File
|
1980-01-01
|
84KB
|
1,913 lines
â½áóá 14
èᬠ«Γ½áª¿óáΓ∞ »α«úαá¼¼π
-----------------------------------------------------------------
ÄΓ½áñ¬á, ¬á¬ ¿ ñαπú¿Ñ ßΓáñ¿¿ αáºαáí«Γ¬¿ ¿ óδ»πß¬á »α«úαá¼¼,
∩ó½∩ÑΓß∩ «ñ¡«óαѼѡ¡« ¿ ¡áπ¬«⌐ ¿ ¿ß¬πßßΓó«¼. æπΘÑßΓóπεΓ
߻ѵ¿á½∞¡δÑ »α«µÑñπαδ, ¬«Γ«αδÑ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ óδ∩ó½Ñ¡¿∩
«Φ¿í«¬ ó »α«úαá¼¼Ñ; ß ñαπú«⌐ ßΓ«α«¡δ, ñ½∩ Γ«ú« τΓ«íδ π߬«α¿Γ∞
ß½«ª¡δ⌐ »α«µÑßß «Γ½áñ¬¿ »α«úαá¼¼δ, ΓαÑíπÑΓß∩ ¿ ¡Ñ¼¡«ú« ¿¡Γπ¿µ¿¿.
ä½∩ í«½∞Φ¿¡ßΓóá «Γ½áª¿óáѼδσ »α«úαá¼¼ ½πτΦÑÑ, τΓ« ¼«ª¡«
ßñѽáΓ∞, φΓ« íδßΓα« ¡á⌐Γ¿ ó ¿ßσ«ñ¡«¼ ΓѬßΓÑ »α«úαá¼¼δ ¿ßΓ«τ¡¿¬
«Φ¿í¬¿. é ñá¡¡«⌐ ú½áóÑ αáßß¼«ΓαÑ¡δ ¼ÑΓ«ñδ «Γ½áñ¬¿, ¬«Γ«αδÑ πñ«í¡«
¿ß»«½∞º«óáΓ∞ ñ½∩ φΓ«⌐ µÑ½¿, ¿ »«¬áºá¡«, ¬á¬ ߬«ααÑ¬Γ¿α«óáΓ∞
»α¿Ñ¼δ »α«úαá¼¼¿α«óá¡¿∩, óδºδóáεΘ¿Ñ ¼¡«ú«¬αáΓ¡«Ñ »«∩ó½Ñ¡¿Ñ «Φ¿í«¬
ó »α«úαá¼¼áσ.
â½áóá ¡áτ¿¡áÑΓß∩ ß αáßß¼«ΓαÑ¡¿∩ ñÑ⌐ßΓó¿⌐, ¬«Γ«αδÑ ¡áñ«
óδ»«½¡¿Γ∞ »α¿ «í¡áαπªÑ¡¿¿ ¡Ñ»αáó¿½∞¡«⌐ αáí«Γδ »α«úαá¼¼δ. é φΓ«⌐
ú½áóÑ «»¿ßá¡δ αẽ¿τ¡δÑ ¼ÑΓ«ñδ «Γ½áñ¬¿, ¬«Γ«αδÑ »α¿¼Ñ¡¿¼δ ñ½∩
αẽ¿τ¡δσ ó¿ñ«ó «Φ¿í«¬, ¬«Γ«αδÑ ¼«úπΓ óßΓαÑΓ¿Γ∞ß∩ ó »α«úαá¼¼Ñ, ¿
»αÑñ½áúáÑΓß∩ ¡Ñ߬«½∞¬« ß»«ß«í«ó »α«óÑન αáí«Γ«ß»«ß«í¡«ßΓ¿
»α«úαá¼¼δ.
Å«ß¼«Γα¿¼, ß τÑú« ΓαÑíπÑΓß∩ ¡áτáΓ∞, ¬«úñá óδ «í¡áαπª¿½¿, τΓ«
óáΦá »α«úαá¼¼á αáí«ΓáÑΓ ¡ÑóÑα¡«.
ùΓ« ñѽáΓ∞, Ñß½¿ »α«úαá¼¼á ¡Ñ αáí«ΓáÑΓ?
-----------------------------------------------------------------
ÅαѪñÑ óßÑú«, ¡Ñ ß½ÑñπÑΓ »á¡¿¬«óáΓ∞. äáªÑ «»δΓ¡δ¼
»α«úαá¼¼¿ßΓá¼ αÑñ¬« πñáÑΓß∩ ß »Ñαó«ú« αáºá ¡á»¿ßáΓ∞ »α«úαá¼¼π,
¬«Γ«αá∩ ßαáºπ ¡áτ¿¡á∩ÑΓ »αáó¿½∞¡« αáí«ΓáΓ∞.
ùΓ«íδ ¿ºíѪáΓ∞ »«ΓÑα¿ í«½∞Φ«ú« ¬«½¿τÑßΓóá óαѼѡ¿ ¿
íѺαѺπ½∞ΓáΓ¡δσ »«¿ß¬«ó, »«ßΓáαá⌐ΓÑß∞ »αÑ«ñ«½ÑΓ∞ ß«í½áº¡ ¿ ¡Ñ
ßΓα«¿Γ∞ íÑß»«α∩ñ«τ¡δσ ú¿»«ΓѺ « Γ«¼, úñÑ íδ ¼«ú½á ¡áσ«ñ¿Γ∞ß∩
«Φ¿í¬á. ïπτΦÑ óßÑú« ßαáºπ ó«ß»«½∞º«óáΓ∞ß∩ π¡¿óÑαßá½∞¡δ¼ ¿
»α«óÑαÑ¡¡δ¼ »α¿¡µ¿»«¼: αáºñѽ∩⌐ ¿ óß½áßΓóπ⌐.
æñѽá⌐ΓÑ α∩ñ »αÑñ»«½«ªÑ¡¿⌐, »α«óÑα∩∩ ¬áªñ«Ñ ¿º ¡¿σ.
ìá»α¿¼Ñα, ¼«ª¡« óδß߬áºáΓ∞ ú¿»«ΓѺπ, τΓ« «Φ¿í¬á 󫺡¿¬áÑΓ »ÑαÑñ
óδº«ó«¼ Σπ¡¬µ¿¿ xyz, á ºáΓѼ »α«óÑα¿Γ∞ φΓπ ú¿»«ΓѺπ, «ßΓá¡«ó¿ó
óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ ¡á ó맮óÑ Σπ¡¬µ¿¿ xyz ¿ »α«óÑα¿ó ÑÑ
ß«ßΓ«∩¡¿Ñ ó φΓ«⌐ Γ«τ¬Ñ. àß½¿ «Φ¿í¬á ¬ φΓ«¼π ¼«¼Ñ¡Γπ πªÑ
»α«¿º«Φ½á, ¼«ª¡« ßñѽáΓ∞ ¡«ó«Ñ »αÑñ»«½«ªÑ¡¿Ñ, τΓ« «Φ¿í¬á
»α«¿º«Φ½á ÑΘÑ αá¡∞ΦÑ.
àß½¿ ªÑ ¬ ¼«¼Ñ¡Γπ ó맮óá Σπ¡¬µ¿¿ xyz «Φ¿í¬¿ ¡Ñ »α«¿º«Φ½«,
º¡áτ¿Γ ¿ßσ«ñ¡«Ñ »αÑñ»«½«ªÑ¡¿Ñ í佫 ¡ÑóÑα¡δ¼. Æ«úñá ¼«ª¡«
»αÑñ»«½«ª¿Γ∞, τΓ« «Φ¿í¬á 󫺡¿¬áÑΓ úñÑ-Γ« »«ß½Ñ ó맮óá Σπ¡¬µ¿¿
xyz. éδ»«½¡¿ó ¡Ñ߬«½∞¬« »«ñ«í¡δσ »α«óÑ᫬, ¼«ª¡« íδßΓ«α« ¡á⌐Γ¿
ëà Σαáú¼Ñ¡Γ »α«úαá¼¼δ, ¬«Γ«αδ⌐ óδºδóáÑΓ «Φ¿í¬π.
éßÑ φΓ« Γá¬, ᪿ߬ΓÑ óδ, ¡« ¬á¬ «»αÑñѽ¿Γ∞ »αáó¿½∞¡« ½¿
αáí«ΓáÑΓ »α«úαá¼¼á ó ëà ¼«¼Ñ¡Γ, ¬«úñá «¡á «ßΓá¡«ó½Ñ¡á ñ½∩
»α«óÑન ÑÑ ß«ßΓ«∩¡¿∩? Äñ¿¡ ¿º ½πτΦ¿σ ß»«ß«í«ó «»αÑñѽѡ¿∩
αáí«Γ«ß»«ß«í¡«ßΓ¿ »α«úαá¼¼δ ºá¬½ετáÑΓß∩ ó »α«óÑα¬Ñ ÑÑ »ÑαѼѡ¡δσ
¿ «íΩÑ¬Γ«ó ñá¡¡δσ. ìá»α¿¼Ñα, Ñß½¿ ¿¼ÑÑΓß∩ »«ñ»α«úαá¼¼á, ¬«Γ«αá∩
«τ¿ΘáÑΓ ¼áßß¿ó, ¼«ª¡« »α«óÑα¿Γ∞ »αáó¿½∞¡«ßΓ∞ ÑÑ αáí«Γδ, «ßΓá¡«ó¿ó
»α«úαá¼¼π »«ß½Ñ óδ»«½¡Ñ¡¿∩ φΓ«⌐ Σπ¡¬µ¿¿ ¿ »α«óÑα¿ó º¡áτÑ¡¿∩ óßÑσ
φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá.
æΓ¿½∞ «Γ½áñ¬¿
-----------------------------------------------------------------
èáªñδ⌐ »α«úαá¼¼¿ßΓ ¿¼ÑÑΓ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ ßΓ¿½∞ ¡á»¿ßá¡¿∩
»α«úαá¼¼, ¿ ¬áªñδ⌐ óδαáíáΓδóáÑΓ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ ßΓ¿½∞ «Γ½áñ¬¿.
ÉѬ«¼Ñ¡ñᵿ¿ »« «Γ½áñ¬Ñ, ¬«Γ«αδÑ ñáεΓß∩ ó φΓ«⌐ ú½áóÑ, ∩ó½∩εΓß∩
¿ßσ«ñ¡«⌐ Γ«τ¬«⌐, «Γ ¬«Γ«α«⌐ ¼«ª¡« ¡áτáΓ∞ óδαáíáΓδóáΓ∞ ßó«ε
ß«íßΓóÑ¡¡πε ¼ÑΓ«ñ¿¬π.
é« ¼¡«ú¿σ ß½πτá∩σ ¼ÑΓ«ñ¿¬á «Γ½áñ¬¿ »α«úαá¼¼δ ºáó¿ß¿Γ «Γ
Γ«ú«, ñ½∩ ¬á¬¿σ µÑ½Ñ⌐ «¡á αáºαáíáΓδóáÑΓß∩. ìѬ«Γ«αδÑ »α«úαá¼¼δ
»αÑñ¡áº¡áτÑ¡δ Γ«½∞¬« ñ½∩ ß«íßΓóÑ¡¡«ú« »α¿¼Ñ¡Ñ¡¿∩ ¿½¿ ñ½∩ Γ«ú«,
τΓ«íδ «ñ¿¡ ¿½¿ ñóá αáºá αÑΦ¿Γ∞ ¬«¡¬αÑΓ¡πε ºáñáτπ. é φΓ¿σ ß½πτá∩σ
»«½¡á∩ »α«óÑα¬á αáí«Γ«ß»«ß«í¡«ßΓ¿ óßÑσ ¬«¼»«¡Ñ¡Γ«ó »α«úαá¼¼δ
∩ó½∩ÑΓß∩ ¡á»αáß¡«⌐ ΓαáΓ«⌐ óαѼѡ¿, «ß«íÑ¡¡« Ñß½¿ ¼«ª¡« πíÑñ¿Γ∞ß∩
ó »αáó¿½∞¡«ßΓ¿ ÑÑ αáí«Γδ, »α«ßΓ« »α«óÑα¿ó óδñáóáѼπε Ñε
¿¡Σ«α¼áµ¿ε. Åα«úαá¼¼δ, ¡á»¿ßá¡¡δÑ ñ½∩ ¿ß»«½∞º«óá¡¿∩ ñαπú¿¼¿
½εñ∞¼¿, ¿½¿ »α«úαá¼¼δ, óδ»«½¡∩εΘ¿Ñ ºáñáτ¿, Γ«τ¡«ßΓ∞ ¬«Γ«αδσ
Γαπñ¡« »α«óÑα¿Γ∞ ó¿ºπá½∞¡«, ¡πªñáεΓß∩ ó í«½ÑÑ ßΓα«ú«¼ »«ñσ«ñÑ ¬
«Γ½áñ¬Ñ.
Åα«óÑα¬á αáí«Γδ óßÑ⌐ »α«úαá¼¼δ --------------------------------
ä½∩ ¡Ñß½«ª¡δσ »α«úαá¼¼ ½πτΦÑ óßÑú« íδóáÑΓ »α«ßΓ« ºá»πßΓ¿Γ∞
»α«úαá¼¼π ¿ »«ß¼«ΓαÑΓ∞, τΓ« »α«¿ßσ«ñ¿Γ. àß½¿ »α¿ φΓ«¼ 󫺡¿¬áεΓ
¬á¬¿Ñ-Γ« »α«í½Ñ¼δ, ¼«ª¡« ºá»πßΓ¿Γ∞ »α«úαá¼¼π ºá¡«ó«, ºáñáó Ñ⌐
ßá¼δÑ »α«ßΓδÑ óσ«ñ¡δÑ ñá¡¡δÑ, ¿ »α«óÑα¿Γ∞ ÑÑ óδó«ñ. Å«ß½Ñ φΓ«ú«
¼«ª¡« »«ßΓѻѡ¡« πß½«ª¡∩Γ∞ óó«ñ¿¼δÑ ñá¡¡δÑ ñ« ΓÑσ »«α, »«¬á
»α«úαá¼¼á ¡Ñ ßΓá¡ÑΓ óδñáóáΓ∞ ¡ÑóÑα¡δ⌐ αѺπ½∞ΓáΓ. ¥Γ« ñáßΓ
󫺼«ª¡«ßΓ∞ »«τπóßΓó«óáΓ∞, ¡á߬«½∞¬« óѽ¿¬á ¿½¿ ¼á½á τáßΓ∞
»α«úαá¼¼δ, αáí«ΓáεΘá∩ »αáó¿½∞¡«.
Å«ß½Ññ«óáΓѽ∞¡«Ñ ΓÑßΓ¿α«óá¡¿Ñ ---------------------------------
àß½¿ ¡Ñ«íσ«ñ¿¼« íδΓ∞ »«½¡«ßΓ∞ε πóÑαÑ¡¡δ¼ ó αáí«Γ«ß»«ß«í¡«ßΓ¿
»α«úαá¼¼δ, ß½ÑñπÑΓ »α«óÑα¿Γ∞ ÑÑ «Γñѽ∞¡δÑ »«ñ»α«úαá¼¼δ ¿
πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ« «¡á αáí«ΓáÑΓ »αáó¿½∞¡« ß« ߻ѵ¿á½∞¡δ¼¿
ΓÑßΓ«ó묨 óσ«ñ¡δ¼¿ ñá¡¡δ¼¿. ¥Γ« ¼«ª¡« ßñѽáΓ∞ ñóπ¼∩ ß»«ß«íἿ:
¼«ª¡« ΓÑßΓ¿α«óáΓ∞ ¬áªñπε »«ñ»α«úαá¼¼π »« ¼ÑαÑ ÑÑ ¡á»¿ßá¡¿∩,
ßñѽáó ÑÑ τáßΓ∞ε ΓÑßΓ«ó«⌐ »α«úαá¼¼δ, ¬«Γ«αá∩ óδºδóáÑΓ ÑÑ, ºáñáóá∩
«»αÑñѽѡ¡δÑ ΓÑßΓ«óδÑ ñá¡¡δÑ; ½¿í« ¼«ª¡« ß »«¼«Θ∞ε «Γ½áñτ¿¬á
»α«óÑα∩Γ∞ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ ó »«Φáú«ó«¼ αѪ¿¼Ñ »«ß½Ñ Γ«ú«, ¬á¬
íπñÑΓ ¡á»¿ßá¡á óß∩ »α«úαá¼¼á.
é¿ñδ «Φ¿í«¬
-----------------------------------------------------------------
ÄΦ¿í¬¿ ó »α«úαá¼¼áσ ¼«ª¡« αáºñѽ¿Γ∞ ¡á ñóÑ í«½∞Φ¿Ñ
¬áΓÑú«α¿¿: «Φ¿í¬¿, σáαá¬ΓÑα¡δÑ ñ½∩ ∩ºδ¬á, ¡á ¬«Γ«α«¼ ¡á»¿ßá¡á
»α«úαá¼¼á (æ¿, Åá߬á½∩ ¿½¿ áßßѼí½Ñαá), ¿ «Φ¿í¬¿, ∩ó½∩εΘ¿Ñß∩
«íΘ¿¼¿ ñ½∩ óßÑσ ∩ºδ¬«ó »α«úαá¼¼¿α«óá¡¿∩.
äѽá∩ ß««ΓóÑΓßΓóπεΘ¿Ñ óδó«ñδ »« σ«ñπ «Γ½áñ¬¿ ßó«¿σ »α«úαá¼¼,
óδ íδßΓα« ¿ºπτ¿ΓÑ ß»Ñµ¿Σ¿τ¡δÑ ñ½∩ ∩ºδ¬á ¬«¡ßΓαπ¬µ¿¿, ¬«Γ«αδÑ
óδºδóáεΓ π óáß ºáΓαπñ¡Ñ¡¿∩, á Γá¬ªÑ «íΘ¿Ñ «Φ¿í¬¿, ¬«Γ«αδÑ óδ
ñ«»π߬áÑΓÑ »α¿ »α«úαá¼¼¿α«óá¡¿¿. 黫߽ÑñßΓó¿¿ óδ ß¼«ªÑΓÑ
¿ß»«½∞º«óáΓ∞ »«½πτÑ¡¡δÑ º¡á¡¿∩ ñ½∩ Γ«ú«, τΓ«íδ ¿ºíѪáΓ∞
á¡á½«ú¿τ¡δσ «Φ¿í«¬ ó íπñπΘѼ, ¿ ¡á «ß¡«óÑ »«½πτÑ¡¡«ú« «»δΓá
¡áσ«ñ¿Γ∞ «Φ¿í¬¿ ó ßó«¿σ ß½ÑñπεΘ¿σ »α«úαá¼¼áσ.
â½áó¡«Ñ ó φΓ«¼ ñѽÑ, »«ßΓáαáΓ∞ß∩ »«¡∩Γ∞, ¬ ¬á¬«¼π ó¿ñπ
«Γ¡«ß¿Γß∩ ¬áªñá∩ ¬«¡¬αÑΓ¡á∩ «Φ¿í¬á ¿ Γᬿ¼ «íαẫ¼ αáºó¿óáΓ∞ ó
ßÑíÑ ß»«ß«í¡«ßΓ∞ »¿ßáΓ∞ »α«úαá¼¼δ íѺ «Φ¿í«¬. ê ¡á¬«¡Ñµ, ½πτΦÑ
»¿ßáΓ∞ »α«úαá¼¼δ íѺ «Φ¿í«¬, τѼ π¼ÑΓ∞ «í¡áαπª¿óáΓ∞ «Φ¿í¬¿.
ÄíΘ¿Ñ «Φ¿í¬¿ --------------------------------------------------
ì¿ªÑ ¬αáΓ¬« »ÑαÑτ¿ß½Ñ¡δ »α¿¼Ñαδ «Φ¿í«¬, ¬«Γ«αδÑ σáαá¬ΓÑα¡δ
ñ½∩ »α«úαá¼¼ ¡á ½εíδσ ∩ºδ¬áσ.
æ¬αδΓδÑ φΣΣѬΓδ
---------------
Åα¿ ¡Ñ«ßë᫪¡«¼ «íαáΘÑ¡¿¿ ß ú½«íá½∞¡δ¼¿ »ÑαѼѡ¡δ¼¿ ó
Σπ¡¬µ¿∩σ ó맮ó Σπ¡¬µ¿¿ ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡Ñ«ª¿ñá¡¡δ¼ ¿º¼Ñ¡Ñ¡¿∩¼
»ÑαѼѡ¡«⌐ ¿½¿ ßΓαπ¬Γπαδ ñá¡¡δσ:
char workbuf[20];
strcpy(workbuf,"all done\n");
convert("xyz");
printf(workbuf);
...
convert(char *p)
{
strcpy(workbuf, p);
while (*p)
...
}
çñÑß∞ »αáó¿½∞¡«Ñ αÑΦÑ¡¿Ñ ºá¬½ετáÑΓß∩ ó ¿ß»«½∞º«óá¡¿¿
Σπ¡¬µ¿Ñ⌐ ß«íßΓóÑ¡¡«ú« αáí«τÑú« íπΣÑαá.
éδ »αÑñ»«½«ª¿½¿, τΓ« ñá¡¡δÑ πªÑ ¿¡¿µ¿á½¿º¿α«óá¡δ
------------------------------------------------
ìÑ »«½áúá⌐ΓÑß∞ ¡á Γ«, τΓ« »ÑαѼѡ¡δÑ πªÑ í뫨
¿¡¿µ¿á½¿º¿α«óá¡δ úñÑ-Γ« ñαπú«⌐ »«ñ»α«úαá¼¼«⌐:
char *workbuf;
addworkstring(char *s)
{
strcpy(workbuf, s); /* «Φ¿í¬á */
}
çñÑß∞ ¡πª¡« ºá»¿ßáΓ∞ í«½ÑÑ «»αÑñѽѡ¡«:
if (workbuf == 0) workbuf = (char *)malloc(20);
ìÑ óδ»«½¡Ñ¡á «τ¿ßΓ¬á »á¼∩Γ¿
---------------------------
æ½ÑñπεΘá∩ «Φ¿í¬á ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »α«úαá¼¼¡«¼π ßí«ε ¿º-ºá
Γ«ú«, τΓ« ¿ºαáßσ«ñ«óá¡« óßÑ »α«ßΓαá¡ßΓó« ¬πτ¿:
crunch_string(char *p)
{
char *work = (char *)malloc(strlen(p));
strcpy(work, p);
...
return(p); /* »α¿ φΓ«¼ work ÑΘÑ αáß»αÑñÑ½Ñ¡á »á¼∩Γ∞ */
}
ÄΦ¿í¬á "»«ß½Ññ¡Ñú« ßΓ«½íá ¿ºú«α«ñ¿"
-----------------------------------
¥Γ«ú« α«ñá «Φ¿í¬¿ ¡áºóá¡δ ó τÑßΓ∞ ßΓáα«⌐ ºáúáñ¬¿ : "àß½¿ ∩
σ«τπ »«ßΓáó¿Γ∞ ¿ºú«α«ñ∞ ñ½¿¡«⌐ 100 ΣπΓ«ó ß« ßΓ«½íἿ τÑαѺ ¬áªñδÑ
10 ΣπΓ«ó, ߬«½∞¬« ¼¡Ñ »«¡áñ«í¿Γß∩ ßΓ«½í«ó?" üδßΓαδ⌐, ¡« ¡ÑóÑα¡δ⌐
«ΓóÑΓ - 10 ßΓ«½í«ó («ñ¡á¬«, ¬á¬ ¡áßτÑΓ »«ß½Ññ¡Ñú« ßΓ«½íá ó ¬«¡µÑ
¿ºú«α«ñ¿?). ì¿ªÑ »α¿ó«ñ¿Γß∩ »α¿¼Ñα Γᬫú« α«ñá «Φ¿í¬¿ ó
æ¿-»α«úαá¼¼Ñ:
for (n = 1; n < 10; n++)
{
... /* «Φ¿í¬á - µ¿¬½ óδ»«½¡¿Γß∩ Γ«½∞¬« 9 αẠ*/
}
çñÑß∞ Σ¿úπα¿απεΓ µ¿Σαδ 1 ¿ 10, ¿ óá¼ ¼«ªÑΓ »«¬áºáΓ∞ß∩, τΓ«
µ¿¬½ íπñÑΓ óδ»«½¡Ñ¡ 10 αáº. (ùΓ«íδ ¡á ßἫ¼ ñÑ½Ñ Γᬠ¿ í佫,
ºá¼Ñ¡¿ΓÑ < ¡á <=).
ÄΦ¿í¬¿, σáαá¬ΓÑα¡δÑ ñ½∩ »α«úαá¼¼¿α«óá¡¿∩ ¡á æ¿ ----------------
é Éπ¬«ó«ñßΓóÑ »«½∞º«óáΓѽ∩ »« ∩ºδ¬π Turbo C ÑßΓ∞ αáºñѽ,
»«ßó∩ΘÑ¡¡δ⌐ "½«óπΦ¬á¼" ñ½∩ »α«úαá¼¼¿ßΓ«ó, αáí«ΓáεΘ¿σ ¡á æ¿, ¡«
½πτΦÑ óßÑú« ßó«¿ º¡á¡¿∩ « "½«óπΦ¬áσ" ¼«ª¡« »«»«½¡¿Γ∞ ó »α«µÑßßÑ
«Γ½áñ¬¿ αÑá½∞¡«⌐ »α«úαá¼¼δ.
諼»¿½∩Γ«α Turbo C ¼«ªÑΓ «τÑ¡∞ σ«α«Φ« ¡áσ«ñ¿Γ∞ α∩ñ «Φ¿í«¬,
߻ѵ¿Σ¿τ¡δσ ñ½∩ ∩ºδ¬á æ¿, ¬«Γ«αδÑ ñαπú¿¼¿ ¬«¼»¿½∩Γ«αἿ ¡Ñ
«í¡áαπª¿óáεΓß∩. ¡« ßφ¬«¡«¼¿Γ∞ ¼¡«ú« óαѼѡ¿, ΓαÑíπεΘÑú«ß∩ ñ½∩
«Γ½áñ¬¿, Ñß½¿ ó¬½ετ¿Γ∞ Σ«α¼¿α«óá¡¿Ñ óßÑσ 󫺼«ª¡δσ »αÑñπ»αѪñÑ¡¿⌐
¬«¼»¿½∩Γ«αá. (ê¡Σ«α¼áµ¿∩ « Σ«α¼¿α«óá¡¿¿ φΓ¿σ »αÑñπ»αѪñÑ¡¿⌐
»α¿óÑñÑ¡á ó Éπ¬«ó«ñßΓóÑ »«½∞º«óáΓѽ∩ »« ∩ºδ¬π Turbo C).
ì¿ªÑ »α¿óÑñÑ¡« «»¿ßá¡¿Ñ ¡Ñ¬«Γ«αδσ σáαá¬ΓÑα¡δσ ß½πτáÑó,
¬«Γ«αδÑ óδºδóáεΓ ºáΓαπñ¡Ñ¡¿∩ »α¿ »α«úαá¼¼¿α«óá¡¿¿ ¡á æ¿. ä½∩
¡Ñ¬«Γ«αδσ ¿º «»¿ßá¡¡δσ «Φ¿í«¬ ¬«¼»¿½∩Γ«α Turbo C óδñáÑΓ
»αÑñπ»αѪñáεΘ¿Ñ ß««íΘÑ¡¿∩. ìÑ ºáíδóá⌐ΓÑ óδ∩ß¡∩Γ∞ »α¿τ¿¡π ¬áªñ«ú«
Γᬫú« ß««íΘÑ¡¿∩, »«ß¬«½∞¬π «¡¿ ¼«úπΓ »αÑñπ»αÑñ¿Γ∞ óáß «
ñ«»π߬áѼ«⌐ óἿ «Φ¿í¬Ñ.
êß»«½∞º«óá¡¿Ñ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δσ áóΓ«¼áΓ¿τÑ߬¿σ »ÑαѼѡ¡δσ
------------------------------------------------------------
é ∩ºδ¬Ñ æ¿ áóΓ«-»ÑαѼѡ¡á∩, «»¿ßá¡¡á∩ ó¡πΓα¿ Σπ¡¬µ¿¿, ¿¼ÑÑΓ
¡Ñ«»αÑñѽѡ¡«Ñ º¡áτÑ¡¿Ñ, »«¬á «¡« ¡Ñ íπñÑΓ ¬á¬¿¼-Γ« «íαẫ¼
ºáúαπªÑ¡«:
do_ten_times()
{
int n;
while (n < 10)
{
...
n++;
}
}
é φΓ«⌐ Σπ¡¬µ¿¿ µ¿¬½ while íπñÑΓ óδ»«½¡∩Γ∞ß∩ ¡Ñ»αÑñ߬áºπѼ«Ñ
τ¿ß½« αáº, »«ß¬«½∞¬π »ÑαѼѡ¡á∩ n ¡Ñ íδ½á πßΓá¡«ó½Ñ¡á ó ¡«½∞
»ÑαÑñ ¿ß»«½∞º«ó᡿Ѽ ÑÑ ó ¬áτÑßΓóÑ ßτÑΓτ¿¬á µ¿¬½á.
êß»«½∞º«óá¡¿Ñ = ó¼ÑßΓ« ==
-------------------------
ƒºδ¬ æ¿ »«ºó«½∩ÑΓ ¬á¬ »α¿ßóá¿óáΓ∞ º¡áτÑ¡¿Ñ (º¡á¬ =), Γᬠ¿
»α«óÑα∩Γ∞ αáóÑ¡ßΓó« º¡áτÑ¡¿⌐ (º¡á¬ ==) ó¡πΓα¿ óδαáªÑ¡¿⌐,
¡á»α¿¼Ñα,
if (x = y) {
...
}
çñÑß∞ ¡Ñπ¼δΦ½Ñ¡¡« º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ y íπñÑΓ »α¿ßó«Ñ¡«
»ÑαѼѡ¡«⌐ x ¿ íπñπΓ óδ»«½¡Ñ¡δ «»ÑαáΓ«αδ ó óδαáªÑ¡¿¿ if, Ñß½¿ φΓ«
º¡áτÑ¡¿Ñ ¡Ñ αáó¡« ¡π½ε. é¼ÑßΓ« φΓ«ú« ߬«αÑÑ óßÑú« ñ«½ª¡« í佫
íδΓ∞ ºá»¿ßá¡« ß½ÑñπεΘÑÑ:
if (x = = y) {
...
ìÑ»αáó¿½∞¡á∩ αáßßΓá¡«ó¬á «»Ñαᵿ⌐ ó óδαáªÑ¡¿¿
---------------------------------------------
é ∩ºδ¬Ñ æ¿ ¿¼ÑÑΓß∩ Γᬠ¼¡«ú« «»Ñαᵿ⌐, τΓ« ¿¡«úñá, Ñß½¿
óδαáªÑ¡¿Ñ ß«ñÑαª¿Γ ¼¡«ú« αẽ¿τ¡δσ «»Ñαᵿ⌐, ½Ñú¬« «Φ¿í¿Γ∞ß∩ ó ¿σ
αáßßΓá¡«ó¬Ñ. Äñ¿¡ ¿º ¡á¿í«½ÑÑ «íΘ¿σ ß½πτáÑó, ¬«Γ«αδ⌐ ¼«ªÑΓ
óδºóáΓ∞ «Φ¿í¬π ó αáßßΓá¡«ó¬Ñ º¡á¬«ó «»Ñαᵿ⌐, φΓ« ß«τÑΓá¡¿Ñ ó
«ñ¡«¼ óδαáªÑ¡¿¿ «»Ñαᵿ⌐ ßñó¿úá ¿ ß½«ªÑ¡¿∩ (¿½¿ óδτ¿Γá¡¿∩).
ìá»α¿¼Ñα, º¡áτÑ¡¿Ñ óδαáªÑ¡¿∩
x = 3 << 1 + 1
íπñÑΓ αáó¡« 12, á ¡Ñ 7, ¬á¬ ¼«ú½« í佫 íδΓ∞, Ñß½¿ íδ º¡á¬
<< ßΓ«∩½ »ÑαÑñ º¡á¬«¼ +.
ìÑ»αáó¿½∞¡«Ñ óδτ¿ß½Ñ¡¿Ñ π¬áºáΓѽÑ⌐
----------------------------------
è«úñá óδ ¿ß»«½∞ºπÑΓÑ π¬áºáΓѽ¿ ñ½∩ »ÑαѼÑΘÑ¡¿∩ »« ¼áßß¿óá¼,
íπñ∞ΓÑ ó¡¿¼áΓѽ∞¡δ »α¿ óδ»«½¡Ñ¡¿¿ «»Ñαᵿ⌐ ß½«ªÑ¡¿∩ ¿ óδτ¿Γá¡¿∩
¡áñ π¬áºáΓѽ∩¼¿. ìá»α¿¼Ñα, «»ÑαáΓ«αδ
int *intp;
intp += sizeof(int);
¡Ñ ñáεΓ «ª¿ñáѼ«ú« αѺπ½∞ΓáΓá, Γ« ÑßΓ∞ »ÑαѼÑΘÑ¡¿∩ π¬áºáΓѽ∩
intp ¬ ß½ÑñπεΘѼπ φ½Ñ¼Ñ¡Γπ ¼áßß¿óá µÑ½δσ τ¿ßѽ. é
ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, intp íπñÑΓ ß¼ÑΘÑ¡ ¡á ñóá φ½Ñ¼Ñ¡Γá ¼áßß¿óá. Åα¿
óδ»«½¡Ñ¡¿¿¿ «»Ñαᵿ⌐ ß½«ªÑ¡¿∩ ¿ óδτ¿Γá¡¿∩ ¡áñ π¬áºáΓѽ∩¼¿
¬«¼»¿½∩Γ«α æ¿ πτ¿ΓδóáÑΓ αẼÑα φ½Ñ¼Ñ¡Γá, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ
π¬áºáΓѽ∞, »«φΓ«¼π óßÑ, τΓ« ΓαÑíπÑΓß∩ ßñѽáΓ∞ ñ½∩ »ÑαѼÑΘÑ¡¿∩
π¬áºáΓѽ∩ ¬ ß½ÑñπεΘѼπ φ½Ñ¼Ñ¡Γπ ¼áßß¿óá, φΓ« ºá»¿ßáΓ∞:
intp++
ìÑ«ª¿ñáѼ«Ñ αáßΦ¿αÑ¡¿Ñ º¡á¬á
----------------------------
ìÑ«íσ«ñ¿¼« íδΓ∞ ó¡¿¼áΓѽ∞¡δ¼ »α¿ óδ»«½¡Ñ¡¿¿ «»Ñαᵿ⌐
»α¿ßóá¿óá¡¿∩ ¡áñ µÑ½«τ¿ß½Ñ¡¡δ¼¿ »ÑαѼѡ¡δ¼¿, ¿¼ÑεΘ¿¼¿ αạδÑ
αẼÑαδ:
int i = OXFFFF;
long l;
l = i;
if (l & 0X80000000) {
... /* φΓ« üôäàÆ óδ»«½¡∩Γ∞ß∩ */
}
Äñ¡« ¿º ßΓα«ú¿σ »αáó¿½ ∩ºδ¬á æ¿ ¼«ªÑΓ óδºóáΓ∞ π óáß
ºáΓαπñ¡Ñ¡¿∩, Ñß½¿ óδ ¡Ñ íπñÑΓÑ πτ¿ΓδóáΓ∞ Ñú« ó᪡«ßΓ∞. é æ¿ ¼«ª¡«
ßó«í«ñ¡« »α¿ßóá¿óáΓ∞ º¡áτÑ¡¿∩ αẽ¿τ¡δσ ߬á½∩α¡δσ Γ¿»«ó (char,
int ¿ Γ.ñ.). è«úñá ¡Ñ¬«Γ«α«Ñ µÑ½«Ñ º¡áτÑ¡¿Ñ »α¿ßóá¿óáÑΓß∩
»ÑαѼѡ¡«⌐ í«½∞ΦÑú« αẼÑαá, º¡á¬ ß«σαá¡∩ÑΓß∩ ó φΓ«⌐ »ÑαѼѡ¡«⌐
»πΓѼ αẼ¡«ªÑ¡¿∩ º¡á¬«ó«ú« (ßΓáαΦÑú«) í¿Γá ó ßΓáαΦ¿σ αáºα∩ñáσ
»ÑαѼѡ¡«⌐. ìá»α¿¼Ñα, º¡áτÑ¡¿Ñ -2 (0xfffe) Γ¿»á int ßΓá¡«ó¿Γß∩
º¡áτÑ¡¿Ñ¼ -2 (0xfffffffe) Γ¿»á long.
ìÑ«ª¿ñáѼ«Ñ «ΓßÑτÑ¡¿Ñ
---------------------
æ½ÑñπεΘ¿⌐ »α¿¼Ñα »α¿óÑñÑ¡ ó »α«Γ¿ó«»«½«ª¡«ßΓ∞ »αÑñδñπΘѼπ:
int i;
long l = 0X10000;
i = l;
while (i > 0) {
... /* φΓ« ìà üôäàÆ óδ»«½¡∩Γ∞ß∩ */
}
çñÑß∞ »α¿ßóá¿óá¡¿Ñ »ÑαѼѡ¡«⌐ i º¡áτÑ¡¿∩ »ÑαѼѡ¡«⌐ l
»α¿óÑñÑΓ ¬ Γ«¼π, τΓ« ßΓáαΦ¿Ñ 16 αáºα∩ñ«ó »ÑαѼѡ¡«⌐ l íπñπΓ
«ΓßÑτÑ¡δ, á »ÑαѼѡ¡á∩ i ßΓá¡ÑΓ αáó¡á ¡π½ε.
ï¿Φ¡¿Ñ Γ«τ¬¿ ß ºá»∩Γ«⌐
----------------------
æ½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ¡á »Ñαóδ⌐ óºú½∩ñ óδú½∩ñ¿Γ
󻫽¡Ñ ¡«α¼á½∞¡«:
for (x = 0; x < 10; x++);
{
... /* óδ»«½¡∩ÑΓß∩ Γ«½∞¬« «ñ¿¡ αẠ*/
}
Å«τÑ¼π ¬«ñ, ßΓ«∩Θ¿⌐ ¼Ñªñπ Σ¿úπα¡δ¼¿ ߬«í¬á¼¿ íπñÑΓ
óδ»«½¡∩Γ∞ß∩ Γ«½∞¬« «ñ¿¡ αáº? Åα¿ í«½ÑÑ ó¡¿¼áΓѽ∞¡«¼ αáßß¼«ΓαÑ¡¿¿
¼«ª¡« «í¡áαπª¿Γ∞, τΓ« óßÑ ñѽ« ó Γ«τ¬Ñ ß ºá»∩Γ«⌐, ¬«Γ«αá∩ ßΓ«¿Γ ó
¬«¡µÑ óδαáªÑ¡¿∩ for. ¥Γá Γαπñ¡á∩ ñ½∩ «í¡áαπªÑ¡¿∩ «Φ¿í¬á »α¿ó«ñ¿Γ
¬ Γ«¼π, τΓ« µ¿¬½ for óδ»«½¡∩ÑΓß∩ ñÑß∩Γ∞ αẠíѺ ¬á¬¿σ-½¿í«
ñÑ⌐ßΓó¿⌐, ºáΓѼ «ñ¿¡ αẠóδ»«½¡∩ÑΓß∩ ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ
»α«úαá¼¼δ. ¥Γ« «τÑ¡∞ ¡Ñ»α¿∩Γ¡á∩ «Φ¿í¬á, »«ß¬«½∞¬π ÑÑ ¡Ñ½∞º∩
«í¡áαπª¿Γ∞ «íδτ¡δ¼¿ ß»«ß«íἿ »α«óÑન Σ«α¼áΓ¿α«óá¡¿∩ ¿ ßñó¿ú«ó
Σαáú¼Ñ¡Γ«ó ΓѬßΓá »α«úαá¼¼δ.
îá¬α«ßδ ß »«í«τ¡δ¼¿ φΣΣѬΓἿ
-----------------------------
ÄΦ¿í¬¿, ñ«»πΘÑ¡¡«⌐ ó »α¿óÑñÑ¡¡«¼ ¡¿ªÑ Σαáú¼Ñ¡ΓÑ, ¼«ªÑΓ
«¬áºáΓ∞ß∩ 󻫽¡Ñ ñ«ßΓáΓ«τ¡«, τΓ«íδ óδ ¡á óßε ª¿º¡∞ ñ὿ ºá᫬ ¡Ñ
¿ß»«½∞º«óáΓ∞ ó ßó«¿σ »α«úαá¼¼áσ ¼á¬α«ßδ Γ¿»á #define.
#define toupper(c) 'a'<= (c)&&(c)<='z' ? (c)-'a'-'A' : (c)
char c, *p;
c = toupper(*p++);
çñÑß∞ º¡áτÑ¡¿Ñ p ¡áαáΘ¿óáÑΓß∩ ñóá ¿½¿ Γα¿ αáºá ó ºáó¿ß¿¼«ßΓ¿
«Γ Γ«ú«, ∩ó½∩ÑΓß∩ ½¿ ß¿¼ó«½ ß¿¼ó«½«¼ óÑασ¡Ñú« αÑú¿ßΓαá. ÄΦ¿í¬¿
Γᬫú« Γ¿»á «τÑ¡∞ ß½«ª¡« «í¡áαπª¿óáΓ∞, »«ß¬«½∞¬π »«í«τ¡δ⌐ φΣΣѬΓ
ß»α∩Γá¡ ó «»αÑñѽѡ¿¿ ¼á¬α«ßá.
Å«óΓ«αÑ¡¿Ñ ¿¼Ñ¡ áóΓ«¼áΓ¿τÑ߬¿σ »ÑαѼѡ¡δσ
-----------------------------------------
àΘÑ «ñ¡á «Φ¿í¬á, ¬«Γ«απε ß½«ª¡« «í¡áαπª¿Γ∞:
myfunc()
{
int n;
for (n = 5; n >= 0; n--)
{
int n = 10;
...
if (n == 0)
{
...
}
}
}
çñÑß∞ ¿¼∩ áóΓ«¼áΓ¿τÑ߬«⌐ »ÑαѼѡ¡«⌐ n »«óΓ«α¡« ¿ß»«½∞ºπÑΓß∩
ó« ó¡πΓαÑ¡¡Ñ¼ í½«¬Ñ, ºá¬αδóá∩ ñ«ßΓπ» ¬ »ÑαѼѡ¡«⌐ n, «»¿ßá¡¡«⌐ ó«
ó¡ÑΦ¡Ñ¼ í½«¬Ñ. Å«ñ«í¡«Ñ »«óΓ«αÑ¡¿Ñ ¿¼Ñ¡ »ÑαѼѡ¡δσ ó« ó¡πΓαÑ¡¡¿σ
í½«¬áσ ¡πª¡« ¿ß»«½∞º«óáΓ∞ ß «ß«í«⌐ «ßë᫪¡«ßΓ∞ε. ä«»πßΓ¿Γ∞ Γá¬πε
«Φ¿í¬π º¡áτ¿Γѽ∞¡« »α«ΘÑ, τѼ óδ ¼«ú½¿ íδ »«ñπ¼áΓ∞, »«ß¬«½∞¬π
í«½∞Φ¿¡ßΓó« »α«úαá¼¼¿ßΓ«ó ¿ß»«½∞ºπÑΓ «úαá¡¿τÑ¡¡δ⌐ ¡áí«α ¿¼Ñ¡
»ÑαѼѡ¡δσ ñ½∩ ßτÑΓτ¿¬«ó ½«¬á½∞¡δσ µ¿¬½«ó (¡á»α¿¼Ñα, i, n ¿
Γ.ñ.).
ìÑ»αáó¿½∞¡«Ñ ¿ß»«½∞º«óá¡¿Ñ áóΓ«¼áΓ¿τÑ߬¿σ »ÑαѼѡ¡δσ
----------------------------------------------------
æ½ÑñπεΘá∩ Σπ¡¬µ¿∩ ñ«½ª¡á íδ½á ó«ºóαáΘáΓ∞ π¬áºáΓѽ∞
αѺπ½∞ΓáΓá óδτ¿ß½Ñ¡¿∩:
int *divide_by_3(int n)
{
int i;
i = n/3;
return(&i);
}
ÄΦ¿í¬á ß«ßΓ«¿Γ ó Γ«¼, »α¿ ¬áªñ«¼ ó«ºóαáΓÑ ¿º Σπ¡¬µ¿¿
º¡áτÑ¡¿Ñ áóΓ«¼áΓ¿τÑ߬«⌐ »ÑαѼѡ¡«⌐ »ÑαÑßΓáÑΓ íδΓ∞ ñ«ßΓ«óÑα¡δ¼ ¿
óÑα«∩Γ¡ÑÑ óßÑú« ºáΓ¿αáÑΓß∩ ñαπú¿¼¿ ñá¡¡δ¼¿ ó ßΓѬÑ.
ìÑ«»αÑñѽѡ¡«Ñ º¡áτÑ¡¿Ñ, ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐
----------------------------------------------
àß½¿ Σπ¡¬µ¿∩ ¡Ñ ºá¬á¡τ¿óáÑΓß∩ ºáαѺÑαó¿α«óá¡¡δ¼ ß½«ó«¼
return, ºá ¬«Γ«αδ¼ ß½ÑñπÑΓ ¡Ñ¬«Γ«α«Ñ óδαáªÑ¡¿Ñ, Σπ¡¬µ¿∩ íπñÑΓ
ó«ºóαáΘáΓ∞ ¡Ñ«»αÑñѽѡ¡«Ñ º¡áτÑ¡¿Ñ. ìá»α¿¼Ñα,
char *first_capital_letter(char *p)
{
while (*p)
{
if ('A' <= *p && *p <= 'Z')
return(p);
p++;
}
/* Σπ¡¬µ¿∩ ¡¿τÑú« ¡Ñ ó«ºóαáΘáÑΓ*/
}
àß½¿ ó ßΓα«¬Ñ ¡ÑΓ ºáú½áó¡δσ íπ¬ó, Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ
íÑßß¼δ߽ѡ¡«Ñ º¡áτÑ¡¿Ñ. é ¬áτÑßΓóÑ »«ß½Ññ¡Ñ⌐ ßΓ᫬¿ φΓ«⌐ Σπ¡¬µ¿¿
ñ«½ªÑ¡ íδΓ∞ ºá»¿ßá¡ «»ÑαáΓ«α return(0).
ìÑ»αáó¿½∞¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ºáαѺÑαó¿α«óá¡¡«ú« ß½«óá break
---------------------------------------------------------
Ä»ÑαáΓ«α break «ßπΘÑßΓó½∩ÑΓ óδσ«ñ Γ«½∞¬« ¿º «ñ¡«ú«
󽫪ѡ¡«ú« µ¿¬½á do, for, switch ¿½¿ while:
for (...)
{
while (...)
{
if (...)
break; /* ¼δ σ«Γ¿¼ óδ⌐Γ¿ ¿º µ¿¬½á for */
}
}
çñÑß∞ «»ÑαáΓ«α break «ßπΘÑßΓó½∩ÑΓ óδσ«ñ Γ«½∞¬« ¿º µ¿¬½á
while. ¥Γ« «ñ¿¡ ¿º ΓÑσ ¡Ñ¼¡«ú¿σ ß½πτáÑó, úñÑ ó»«½¡Ñ «»αáóñá¡«
¿ß»«½∞º«óá¡¿Ñ «»ÑαáΓ«αá goto.
è«ñ αáí«ΓáÑΓ ¡Ñ»αáó¿½∞¡«
------------------------
ê¡«úñá ¡«α¼á½∞¡« ¬«¼»¿½¿απѼδÑ Σαáú¼Ñ¡Γδ ¿ßσ«ñ¡«ú« ΓѬßΓá
ñáεΓ ¡Ñ ëà αѺπ½∞ΓáΓ, ¬«Γ«αδ⌐ «ª¿ñá½ß∩:
a + b;
çñÑß∞ ñ«½ª¡á íδ½á ßΓ«∩Γ∞ ßΓ᫬á a += b.
ÄΦ¿í¬¿, σáαá¬ΓÑα¡δÑ ñ½∩ »α«úαá¼¼¿α«óá¡¿∩ ¡á Åá߬á½Ñ -----------
ü½áú«ñáα∩ ßΓα«ú«¼π ¬«¡Γα«½ε Γ¿»«ó ¿ ¡á½¿τ¿ε óßΓα«Ñ¡¡δσ
ßαÑñßΓó ñ¿áú¡«ßΓ¿¬¿ «Φ¿í«¬ ∩ºδ¬á Åá߬á½∞, ÑßΓ∞ α∩ñ «Φ¿í«¬,
߻ѵ¿Σ¿τ¡δσ ñ½∩ ßἫú« ∩ºδ¬á. ì« »«ß¬«½∞¬π Turbo Pascal »«ºó«½∩ÑΓ
»α«úαá¼¼¿ßΓπ «Γ¬½ετáΓ∞ í«½∞Φ¿¡ßΓó« ¿º φΓ¿σ »α«óÑ᫬, φΓ« ¼«ªÑΓ
»α¿óÑßΓ¿ ¬ 󫺡¿¬¡«óÑ¡¿ε «Φ¿í«¬, ¬«Γ«αδσ ¼«ª¡« í佫 íδ ¿ºíѪáΓ∞ ß
»«¼«Θ∞ε óßΓα«Ñ¡¡«⌐ ñ¿áú¡«ßΓ¿¬¿. ì« ñáªÑ »α¿ ¡á½¿τ¿¿ ¼«Θ¡δσ
ßαÑñßΓó ¬«¡Γα«½∩ ºá «Φ¿í¬á¼¿, ¡Ñ¬«Γ«αδÑ ¿º ¡¿σ óßÑ-ªÑ ¼«úπΓ íδΓ∞
ñ«»πΘÑ¡δ.
êß»«½∞º«óá¡¿Ñ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δσ »ÑαѼѡ¡δσ
---------------------------------------------
Turbo Pascal ¡Ñ ¼«ªÑΓ ¿¡¿µ¿á½¿º¿α«óáΓ∞ »ÑαѼѡ¡δÑ ºá óáß; óδ
ñ«½ª¡δ φΓ« ßñѽáΓ∞ ßἫßΓ«∩Γѽ∞¡« ½¿í« ß »«¼«Θ∞ε «»ÑαáΓ«αá
»α¿ßóá¿óá¡¿∩, ½¿í« «íΩ∩ó¿ó ¿σ Γ¿»¿º«óá¡¡δ¼¿ ¬«¡ßΓá¡ΓἿ.
Éáßß¼«Γα¿¼ ß½ÑñπεΘπε »α«úαá¼¼π.
program Test;
var
I,J,Count : Integer;
begin
for I := 1 to Count do begin
J := I*I;
Writeln(I:2, ' ',J:4);
end;
end.
Å«ß½Ñ «»¿ßá¡¿∩ »ÑαѼѡ¡«⌐ Count «¡á ¿¼ÑÑΓ ¡Ñ¬«Γ«α«Ñ
ß½πτá⌐¡«Ñ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ ºá¡¿¼áÑΓ «ΓóÑñÑ¡¡πε Ñ⌐ «í½áßΓ∞
»á¼∩Γ¿, »«φΓ«¼π ß«óÑαΦÑ¡¡« ¡Ñ󫺼«ª¡« «»αÑñѽ¿Γ∞, ߬«½∞¬« αáº
íπñÑΓ óδ»«½¡∩Γ∞ß∩ ñá¡¡δ⌐ µ¿¬½.
èα«¼Ñ Γ«ú«, »ÑαѼѡ¡δÑ, «»¿ßá¡¡δÑ ó¡πΓα¿ »α«µÑñπα ¿ Σπ¡¬µ¿⌐
ß«ºñáεΓß∩ ºá¡«ó« »α¿ ¬áªñ«¼ óσ«ñÑ ó »«ñ»α«úαá¼¼π ¿ π¡¿τΓ«ªáεΓß∩
»α¿ óδσ«ñÑ ¿º ¡ÑÑ; »«φΓ«¼π ¡Ñ½∞º∩ αáßßτ¿ΓδóáΓ∞ ¡á Γ«, τΓ« φΓ¿
»ÑαѼѡ¡δÑ íµñπΓ ß«σαá¡∩Γ∞ ßó«¿ º¡áτÑ¡¿∩ ó¡Ñ ñá¡¡«⌐ »«ñ»α«úαá¼¼δ.
ÄΦ¿í¬¿ »α¿ αáí«ΓÑ ß π¬áºáΓѽ∩¼¿
-------------------------------
àßΓ∞ Γα¿ σáαá¬ΓÑα¡δÑ «Φ¿í¬¿, ¬«Γ«αδÑ ñ«»π߬áεΓß∩ »α¿ αáí«ΓÑ
ß π¬áºáΓѽ∩¼¿. é«-»Ñαóδσ, ¬á¬ π»«¼¿¡á½«ß∞ óδΦÑ, ¡Ñ ß½ÑñπÑΓ
¿ß»«½∞º«óáΓ∞ π¬áºáΓѽ¿ »αѪñÑ, τѼ ¿¼ íπñÑΓ »α¿ßó«Ñ¡« ¡Ñ¬«Γ«α«Ñ
º¡áτÑ¡¿Ñ (nil ¿½¿ ¬á¬«Ñ-Γ« ñαπú«Ñ). ÆᬠªÑ, ¬á¬ ¿ ½εíδÑ ñαπú¿Ñ
»ÑαѼѡ¡δÑ, π¬áºáΓѽ¿ ¡Ñ ¿¡¿µ¿á½¿º¿απεΓß∩ áóΓ«¼áΓ¿τÑ߬¿ »«ß½Ñ ¿σ
«»¿ßá¡¿∩. Åα¿ »Ñαó«⌐ ªÑ 󫺼«ª¡«ßΓ¿ ¿¼ «í∩ºáΓѽ∞¡« ñ«½ª¡« íδΓ∞
ºáñá¡« ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ (»πΓѼ »ÑαÑñáτ¿ ¿σ ó ¬áτÑßΓóÑ »áαá¼ÑΓαá
»α«µÑñπαÑ New ¿½¿ »α¿ßó«Ñ¡¿∩ ¿¼ º¡áτÑ¡¿∩ nil).
é«-óΓ«αδσ, ¡Ñ ß½ÑñπÑΓ «íαáΘáΓ∞ß∩ ¬ π¬áºáΓѽε nil, Γ« ÑßΓ∞ ¡Ñ
¡áñ« »δΓáΓ∞ß∩ »«½πτ¿Γ∞ ñ«ßΓπ» ¬ »ÑαѼѡ¡«⌐ ¿½¿ ßΓαπ¬ΓπαÑ
¡Ñ¬«Γ«α«ú« Γ¿»á, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ ñá¡¡á∩ ßß佫τ¡á∩
»ÑαѼѡ¡á∩, Ñß½¿ º¡áτÑ¡¿Ñ ßἫ⌐ ßß佫τ¡«⌐ »ÑαѼѡ¡«⌐ αáó¡« nil.
ìá»α¿¼Ñα, ñ«»πßΓ¿¼, τΓ« π ¡áß ÑßΓ∞ ½¿¡Ñ⌐¡δ⌐ ßó∩º¡δ⌐ ß»¿ß«¬
ºá»¿ßÑ⌐, ¿ ¼δ σ«Γ¿¼ ¡á⌐Γ¿ ó ¡Ñ¼ ºá»¿ß∞ ß ñá¡¡δ¼ º¡áτÑ¡¿Ñ¼.
Å«ñ»α«úαá¼¼á ñ½∩ »«¿ß¬á ºá»¿ß¿ ¼«ú½á íδ óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼
«íαẫ¼:
function FindNode(Head : NodePtr; Val : integer);
var
Temp : NodePtr;
begin
Temp := Head;
while (Temp^.Key <> Val) and (Temp <> nil) do
Temp := Temp^.Next;
FindNode := Temp
end. { Σπ¡¬µ¿¿ FindNode }
àß½¿ º¡áτÑ¡¿Ñ Val ¡Ñ αáó¡« º¡áτÑ¡¿ε »«½∩ Key ½εí«ú« ¿º πº½«ó
ßó∩º¡«ú« ß»¿ß¬á, φΓá »«ñ»α«úαá¼¼á íπñÑΓ »δΓáΓ∞ß∩ óδτ¿ß½¿Γ∞
º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ Temp^.Key, ¬«úñá Temp αáó¡á nil, τΓ« »α¿óÑñÑΓ
¬ ¡Ñ»αÑñ߬áºπѼ«¼π αѺπ½∞ΓáΓπ. âñÑ ªÑ αÑΦÑ¡¿Ñ »α«í½Ñ¼δ? ÅÑαÑ»¿ΦѼ
πß½«ó¿Ñ µ¿¬½á while ß½ÑñπεΘ¿¼ «íαẫ¼:
while (Temp <> nil) and (Temp^.Key <> Val) do
¿ ó¬½ετ¿¼ αѪ¿¼ ß«¬αáΘÑ¡¡«ú« óδτ¿ß½Ñ¡¿∩ íπ½Ñó߬¿σ óδαáªÑ¡¿⌐
ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ {$B-} ¬«¼»¿½∩Γ«αá Turbo Pascal ¿½¿ ¬«¼á¡ñδ
Options /Compiler/Boolean . é αѺπ½∞ΓáΓÑ φΓ«ú«, Ñß½¿ Temp αáó¡á
nil, óΓ«α«⌐ ΓÑα¼ óδαáªÑ¡¿∩ ¡¿¬«úñá ¡Ñ íπñÑΓ óδτ¿ß½∩Γ∞ß∩.
ê ¡á¬«¡Ñµ, ¡¿¬«úñá ¡Ñ ß½ÑñπÑΓ ñπ¼áΓ∞, τΓ« π¬áºáΓѽε íπñÑΓ
»α¿ßó«Ñ¡« º¡áτÑ¡¿Ñ nil ó αѺπ½∞ΓáΓÑ Γ«ú«, τΓ« «¡« »ÑαÑñáÑΓß∩ ó
¬áτÑßΓóÑ »áαá¼Ñ¡Γαá ó »α«µÑñπαπ Dispose ¿½¿ FreeMem. ô¬áºáΓѽ∞
ß«σαá¡¿Γ ßó«Ñ »αѪ¡ÑÑ º¡áτÑ¡¿Ñ, ¡« «í½áßΓ∞ »á¼∩Γ¿, ¡á ¬«Γ«απε «¡
π¬áºδóá½, «ßó«í«ñ¿Γß∩ ¿ ¼«ªÑΓ íδΓ∞ ºá¡∩Γá ñαπú¿¼¿ ñ¿¡á¼¿τÑ߬¿¼¿
»ÑαѼѡ¡δ¼¿. Å«φΓ«¼π »«ß½Ñ πñá½Ñ¡¿∩ ¿º »á¼∩Γ¿ ßΓαπ¬Γπαδ ñá¡¡δσ,
¡á ¬«Γ«α«πε π¬áºδóáÑΓ ßß佫τ¡á∩ »ÑαѼѡ¡á∩, Ñ⌐ «í∩ºáΓѽ∞¡« ¡áñ«
»α¿ßó«¿Γ∞ º¡áτÑ¡¿Ñ nil.
ÄΦ¿í¬¿, ßó∩ºá¡¡δÑ ß «í½áßΓ∞ε ñÑ⌐ßΓó¿∩
-------------------------------------
é ∩ºδ¬Ñ Åá߬á½∞ ñ«»π߬áÑΓß∩ ¿ß»«½∞º«óáΓ∞ ú½πí«¬« 󽫪ѡ¡δÑ
»α«µÑñπαδ ¿ Σπ¡¬µ¿¿, »α¿τѼ ¬áªñá∩ ¿º ¡¿σ ñ«½ª¡á ¿¼ÑΓ∞ ßó«¿
ß«íßΓóÑ¡¡δÑ «»¿ßá¡¿∩. Éáßß¼«Γα¿¼ ß½ÑñπεΘπε »α«úαá¼¼π.
program Confused;
var
A,B : integer;
procedure Swap(var A,B : integer);
var
T : integer;
begin
Writeln('2: A,B,T = ', A:3,B:3,' ',T);
T := A;
A := B;
B := T;
Writeln('3: A,B,T = ', A:3,B:3,' ',T);
end; { »α«µÑñπαδ Swap }
begin { «ß¡«ó¡«Ñ Γѽ« »α«úαá¼¼δ Confused }
A := 10; B := 20; T := 30;
Writeln('1: A,B,T = ', A:3,B:3,' ',T);
Swap(B,A);
Writeln('4: A,B,T = ', A:3,B:3,' ',T);
end. { »α«úαá¼¼δ Confused }
ùΓ« íπñÑΓ óδñáóáΓ∞ ¡á φ¬αá¡ φΓá »α«úαá¼¼á? ìÑτΓ« »«ñ«í¡«Ñ
»α¿óÑñÑ¡¡«¼π ¡¿ªÑ.
1: A,B,T = 10 20 30
2: A,B,T = 20 10 22161
3: A,B,T = 10 20 20
4: A,B,T = 20 10 30
¥Γ« »α«¿º«Φ½« »«Γ«¼π, τΓ« ¼δ ¿¼ÑѼ »« ñóÑ óÑαß¿¿ ¬áªñ«⌐ ¿º
»ÑαѼѡ¡δσ A, B ¿ T. ⽫íá½∞¡δÑ »ÑαѼѡ¡δÑ ¿ß»«½∞ºπεΓß∩ ó
«ß¡«ó¡«¼ ΓÑ½Ñ »α«úαá¼¼δ, ó Γ« óαѼ∩ ¬á¬ Σπ¡¬µ¿∩ Swap ¿¼ÑÑΓ ßó«¿
½«¬á½∞¡δÑ óÑαß¿¿ φΓ¿σ »ÑαѼѡ¡δσ: Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ A ¿ B ¿
½«¬á½∞¡πε »ÑαѼѡ¡πε T. ùΓ«íδ ÑΘÑ í«½∞ΦÑ óßÑ ºá»πΓáΓ∞, ¼δ
óδ»«½¡∩Ѽ ó맮ó Swap(B,A), ¬«Γ«αδ⌐ «º¡áτáÑΓ, τΓ« Σ«α¼á½∞¡δ⌐
»áαá¼ÑΓα A ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ∩ó½∩ÑΓß∩ ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ B ¿
¡á«í«α«Γ. ê, ¬«¡Ñτ¡« ªÑ, ¡ÑΓ ¡¿¬á¬«⌐ ßó∩º¿ ¼Ñªñ𠽫¬á½∞¡«⌐ ¿
ú½«íá½∞¡«⌐ »ÑαѼѡ¡δ¼¿ T.
é φΓ«¼ »α¿¼ÑαÑ ¡ÑΓ «Φ¿í¬¿ ¬á¬ Γᬫó«⌐, «ñ¡á¬« »α«í½Ñ¼δ ¼«úπΓ
󫺡¿¬¡πΓ∞, ¬«úñá óδ íπñÑΓÑ ñπ¼áΓ∞, τΓ« óδ ¼«ñ¿Σ¿µ¿απÑΓÑ ¡ÑτΓ« ó
Γ« óαѼ∩, ¬á¬ φΓ«ú« ¡Ñ »α«¿ßσ«ñ¿Γ. ìá»α¿¼Ñα, º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐
T ó «ß¡«ó¡«¼ ΓÑ½Ñ »α«úαá¼¼δ «ßΓáÑΓß∩ íѺ ¿º¼Ñ¡Ñ¡¿⌐, σ«Γ∩ ¼«ª¡«
í佫 íδ »«ñπ¼áΓ∞, τΓ« «¡« ¿º¼Ñ¡∩ÑΓß∩. äá¡¡δ⌐ ß½πτá⌐ ¼«ª¡«
αáßß¼áΓα¿óáΓ∞ ¬á¬ »α«Γ¿ó«»«½«ª¡«ßΓ∞ «Φ¿í¬á¼, ¡áºδóáÑ¼δ¼ "߬αδΓ묨
φΣΣѬΓá¼á¼¿", ¬«Γ«αδÑ í뫨 αáßß¼«ΓαÑ¡δ αá¡ÑÑ.
àß½¿ ªÑ ó »α«úαá¼¼Ñ ßñѽá¡δ »α¿óÑñÑ¡¡δÑ ¡¿ªÑ «»¿ßá¡¿∩, φΓ«
¼«ªÑΓ »α¿óÑßΓ¿ ¬ ÑΘÑ í«½∞ΦÑ⌐ »πΓá¡¿µÑ.
type
RecType = record
A,B : integer;
end;
var
A,B : integer;
Rec : RecType;
é »αÑñѽáσ «»ÑαáΓ«αá with «íαáΘÑ¡¿∩ ¬ A ¿ B íπñπΓ ∩ó½∩Γ∞ß∩
«íαáΘÑ¡¿∩¼¿ ¬ »«½∩¼ ºá»¿ß¿, á ¡Ñ ¬ »ÑαѼѡ¡δ¼.
ï¿Φ¡¿Ñ Γ«τ¬¿ ß ºá»∩Γ«⌐
----------------------
ÆᬠªÑ ¬á¬ ¿ ó æ¿, ó Åá߬á½Ñ ñ«»π߬áÑΓß∩ "»πßΓ«⌐" «»ÑαáΓ«α,
ß«ßΓ«∩Θ¿⌐ Γ«½∞¬« ¿º Γ«τ¬¿ ß ºá»∩Γ«⌐. Å«ßΓáó½Ñ¡¡δ⌐ ó ¡ÑóÑα¡«¼
¼ÑßΓÑ, «¡ ¼«ªÑΓ óδºóáΓ∞ óßÑ ó¿ñδ «Φ¿í«¬. Éáßß¼«Γα¿¼ ß½ÑñπεΘπε
»α«úαá¼¼π.
program Test;
var
I,J, : Integer;
begin
for I := 1 to 20 do;
begin
J := I * I;
Writeln(I:2,' ',J:4);
end;
Writeln('éßÑ ßñѽᡫ!')
end.
¥Γá »α«úαá¼¼á ¡Ñ íπñÑΓ óδñáóáΓ∞ ¡á φ¬αá¡ ß»¿ß«¬ »Ñαóδσ
ñóáñµáΓ¿ µÑ½δσ τ¿ßѽ ¿ ¿σ ¬óáñαáΓ«ó. Ä¡á óδñáßΓ Γ«½∞¬«
20 400
éßÑ ßñѽᡫ!
¥Γ« »α«¿º«Φ½« »«Γ«¼π, τΓ« «»ÑαáΓ«α for I := 1 to 20 do;
ºá¬á¡τ¿óáÑΓß∩ Γ«τ¬«⌐ ß ºá»∩Γ«⌐. ¥Γ« «º¡áτáÑΓ, τΓ« 20 αẠíπñÑΓ
óδ»«½¡∩Γ∞ß∩ »πßΓ«⌐ «»ÑαáΓ«α. Å«ß½Ñ φΓ«ú« íπñπΓ óδ»«½¡Ñ¡δ
«»ÑαáΓ«αδ í½«¬á begin..end, á ºáΓѼ óΓ«α«⌐ «»ÑαáΓ«α Writeln.
ùΓ«íδ ¿ß»αáó¿Γ∞ φΓπ «Φ¿í¬π, ¡áñ« »α«ßΓ« πíαáΓ∞ Γ«τ¬π ß ºá»∩Γ«⌐
»«ß½Ñ ß½«óá do.
ìÑ«»αÑñѽѡ¡«Ñ º¡áτÑ¡¿Ñ, ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐
----------------------------------------------
Åα¿ ¡á»¿ßá¡¿¿ Σπ¡¬µ¿¿ ¡Ñ«íσ«ñ¿¼« ß½Ññ¿Γ∞ ºá ΓѼ, τΓ«íδ »ÑαÑñ
óδσ«ñ«¼ ¿º ¡ÑÑ ÑÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«απ í佫 »α¿ß«ó«Ñ¡« ¡Ñ¬«Γ«α«Ñ
º¡áτÑ¡¿Ñ. Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ.
const
NLMax = 100;
type
NumList = array[1..NLMax] of integer;
...
function FindMax(List : NumList; Count : integer) : integer;
var
I,Max : integer;
begin
Max := List[1];
for I := 2 to Count do
if List[I] > Max then
begin
Max := List[I];
FindMax := Max
end
end; { Σπ¡¬µ¿¿ FindMax }
öπ¡¬µ¿∩ íπñÑΓ αáí«ΓáΓ∞ »αѬαáß¡« ñ« ΓÑσ »«α, »«¬á
¼á¬ß¿¼á½∞¡δ¼ ¡Ñ íπñÑΓ º¡áτÑ¡¿Ñ List[1]. é φΓ«¼ ß½πτáÑ Σπ¡¬µ¿¿
FindMax ¡Ñ íπñÑΓ »α¿ßó«Ñ¡« ¡¿¬á¬«ú« º¡áτÑ¡¿∩. Åαáó¿½∞¡δ⌐ óáα¿á¡Γ
φΓ«⌐ Σπ¡¬µ¿¿ íπñÑΓ óδú½∩ñÑΓ∞ Γá¬:
begin
Max := List[1];
for I := 2 to Count do
if List[I] > Max then
Max := List[I];
FindMax := Max
end; { Σπ¡¬µ¿¿ FindMax }
ô¼Ñ¡∞ΦÑ¡¿Ñ º¡áτÑ¡¿⌐ »ÑαѼѡ¡δσ Γ¿»á byte ¿ word
-----------------------------------------------
ìÑ ß½ÑñπÑΓ ñ«»π߬áΓ∞ «Γα¿µáΓѽ∞¡«ú« »α¿αáΘÑ¡¿∩ ߬á½∩α¡δσ
íѺº¡á¬«óδσ »ÑαѼѡ¡δσ (Γ¿»á byte ¿ word) »α¿ »α«óÑα¬Ñ ¿σ ¡á >=
0. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ Σαáú¼Ñ¡ΓÑ ¿¼ÑÑΓß∩ íÑ߬«¡Ñτ¡δ⌐ µ¿¬½.
var
w : word;
begin
w := 5;
while w >= 0 do
w := w - 1;
end.
Å«ß½Ñ »∩Γ«⌐ ¿ΓÑαᵿ¿ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ w ßΓá¡«ó¿Γß∩ αáó¡δ¼
¡π½ε. Åα¿ ß½ÑñπεΘѼ »α«σ«ñÑ ÑÑ º¡áτÑ¡¿Ñ "π¼Ñ¡∞ΦáÑΓß∩" ñ« 65535
(»«ß¬«½∞¬π º¡áτÑ¡¿∩ Γ¿»á word ½ÑªáΓ ó ñ¿á»áº«¡Ñ «Γ 0 ñ« 65535), ¿
»α«ñ«½ªáÑΓ πñ«ó½ÑΓó«α∩Γ∞ πß½«ó¿ε >= 0. é Γᬿσ ß½πτá∩σ ¡Ñ«íσ«ñ¿¼«
¿ß»«½∞º«óáΓ∞ »ÑαѼѡ¡δÑ Γ¿»á integer ¿½¿ longint.
êú¡«α¿α«óá¡¿Ñ úαá¡¿µ ¿½¿ «ß«íδσ ß½πτáÑó
---------------------------------------
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« ó «íÑ¿σ óÑαß¿∩σ Σπ¡¬µ¿¿ FindMax,
»α¿óÑñÑ¡¡δσ ó »αÑñδñπΘѼ αáºñѽÑ, »αÑñ»«½áúáÑΓß∩, τΓ« Count >= 1.
Äñ¡á¬« ó ¡Ñ¬«Γ«αδσ ß½πτá∩σ º¡áτÑ¡¿Ñ Count ¼«ªÑΓ íδΓ∞ αáó¡« ¡π½ε,
Γ« ÑßΓ∞ ß»¿ß«¬ íπñÑΓ »πßΓ. àß½¿ ó φΓ«¼ ß½πτáÑ óδºóáΓ∞ Σπ¡¬µ¿ε
FindMax, «¡á ó«ºóαáΓ¿Γ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ σαá¡¿Γß∩ ó List[1].
ǡὫú¿τ¡«, Ñß½¿ Count > NLMax, ó맮ó Σπ¡¬µ¿¿ ½¿í« »α¿óÑñÑΓ ¬
«Φ¿í¬Ñ »Ñα¿«ñá óδ»«½¡Ñ¡¿∩ (Ñß½¿ ó¬½ετÑ¡ αѪ¿¼ ¬«¡Γα«½∩ úαá¡¿µ),
½¿í« »«¿ß¬ ¼á¬ß¿¼á½∞¡«ú« º¡áτÑ¡¿∩ íπñÑΓ »α«¿ºó«ñ¿Γ∞ß∩ ó ∩τÑ⌐¬áσ
»á¼∩Γ¿, ¡áσ«ñ∩Θ¿σß∩ ºá »αÑñѽἿ ¼áßß¿óá List.
é ñá¡¡«¼ ß½πτáÑ ¿¼ÑÑΓß∩ ñóá 󫺼«ª¡δσ αÑΦÑ¡¿∩ »α«í½Ñ¼δ. Äñ¡«
¿º ¡¿σ, ¬«¡Ñτ¡« ªÑ, ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ«íδ ¡¿¬«úñá ¡Ñ óδºδóáΓ∞
Σπ¡¬µ¿ε FindMax, Ñß½¿ Count ¡Ñ ¡áσ«ñ¿Γß∩ ó ñ¿á»áº«¡Ñ 1..NLMax.
Åα¿τѼ φΓ« «Γ¡«ß¿Γß∩ ¡Ñ Γ«½∞¬« ¬ ñá¡¡«¼π »α¿¼Ñαπ; «ñ¿¡ ¿º ó᪡δσ
áß»Ñ¬Γ«ó σ«α«ΦÑú« »α«úαá¼¼¿α«óá¡¿∩ ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ
«»αÑñѽ∩Γ∞ ñ½∩ ¬áªñ«⌐ »«ñ»α«úαá¼¼δ πß½«ó¿∩ ÑÑ ó맮óá ¿ »α«óÑα∩Γ∞
φΓ¿ πß½«ó¿∩ »α¿ ¬áªñ«¼ ó맮óÑ »«ñ»α«úαá¼¼δ.
äαπú«Ñ αÑΦÑ¡¿Ñ ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ »α«óÑα∩Γ∞ º¡áτÑ¡¿Ñ Count
¿ ó«ºóαáΘáΓ∞ ¡Ñ¬«Γ«α«Ñ »αÑñ«»αÑñѽѡ¡«Ñ º¡áτÑ¡¿Ñ, Ñß½¿ «¡« ¡Ñ
½Ñª¿Γ ó ñ¿á»áº«¡Ñ 1..NLMax. ìá»α¿¼Ñα, ¼«ª¡« í佫 íδ »ÑαÑ»¿ßáΓ∞
Γѽ« Σπ¡¬µ¿¿ FindMax ß½ÑñπεΘ¿¼ «íαẫ¼:
begin
if (Count < 1) or (Count > NLMax) then
Max := -32768
else
begin
Max := List[1];
for I := 2 to Count do
if List[I] > Max then
Max := List[I];
end;
FindMax := Max
end; { Σπ¡¬µ¿¿ FindMax }
¥Γá Σπ¡¬µ¿∩ ó맮óÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ «Φ¿í¬¿ »α«úαá¼¼¿α«óá¡¿∩ ¡á
Åá߬á½Ñ: «Φ¿í¬π óδσ«ñá ºá úαá¡¿µδ ñ¿á»áº«¡á.
ÄΦ¿í¬¿ óδσ«ñá ºá úαá¡¿µδ ñ¿á»áº«¡á
----------------------------------
é ∩ºδ¬Ñ Turbo Pascal »αÑñπß¼«ΓαÑ¡ αѪ¿¼ ¬«¡Γα«½∩ úαá¡¿µ,
¬«Γ«αδ⌐ »« π¼«½τá¡¿ε ó䬽ετÑ¡. ü½áú«ñáα∩ φΓ«¼π Σ«α¼¿απÑΓß∩ í«½ÑÑ
íδßΓαδ⌐ ¿ ¬«¼»á¬Γ¡δ⌐ ¬«ñ, ¡« ó Γ« ªÑ óαѼ∩ φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬
󫺡¿¬¡«óÑ¡¿ε α∩ñá «Φ¿í«¬, Γᬿσ ¬á¬ »α¿ßóá¿óá¡¿Ñ »ÑαѼѡ¡«⌐
º¡áτÑ¡¿∩, ¡áσ«ñ∩ΘÑú«ß∩ ó¡Ñ ñ«»πßΓ¿¼«ú« ñ¿á»áº«¡á ¿½¿
¿¡ñѬ߿α«óá¡¿Ñ ¡ÑßπΘÑßΓóπεΘ¿σ φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá, ¬á¬ »«¬áºá¡« ó
»α¿óÑñÑ¡¡«¼ óδΦÑ »α¿¼ÑαÑ.
ÅÑαóδ¼ Φáú«¼ ó ¡áσ«ªñÑ¡¿¿ »«ñ«í¡δσ «Φ¿í«¬ ∩ó½∩ÑΓß∩ ó¬½ετÑ¡¿Ñ
αѪ¿¼á ¬«¡Γα«½∩ úαá¡¿µ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá {$R+},
»«¼ÑΘÑ¡¡«⌐ ó ΓѬßΓ »α«úαá¼¼δ, ¬«¼»¿½¿α«óá¡¿Ñ »α«úαá¼¼δ ¿ ÑÑ
»«óΓ«α¡δ⌐ ºá»π߬. àß½¿ óδ º¡áÑΓÑ (¿½¿ »αÑñ»«½áúáÑΓÑ), úñÑ
¡áσ«ñ¿Γß∩ «Φ¿í¬á, óδ ¼«ªÑΓÑ »«¼ÑßΓ¿Γ∞ φΓπ ñ¿αÑ¬Γ¿óπ
¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ φΓ¿¼ Σαáú¼Ñ¡Γ«¼ »α«úαá¼¼δ ¿ ß««ΓóÑΓßΓóπεΘπε
ñ¿αÑ¬Γ¿óπ {$R-} »«ß½Ñ ¡Ñú«, ó¬½ετá∩ Γᬿ¼ «íαẫ¼ ¬«¡Γα«½∞ úαá¡¿µ
Γ«½∞¬« ñ½∩ ñá¡¡«ú« Σαáú¼Ñ¡Γá. àß½¿ 󫺡¿¬¡ÑΓ «Φ¿í¬á óδσ«ñá ºá
úαá¡¿µδ ñ¿á»áº«¡á, »α«úαá¼¼á íπñÑΓ «ßΓá¡«ó½Ñ¡á ¿ íπñÑΓ óδñá¡«
ß««ΓóÑΓßΓóπεΘÑÑ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ »Ñα¿«ñá óδ»«½¡Ñ¡¿∩, á Turbo
Pascal »«¬áªÑΓ óá¼, úñÑ »α«¿º«Φ½á «Φ¿í¬á.
Äñ¡á ¿º σáαá¬ΓÑα¡δσ «Φ¿í«¬, ßó∩ºá¡¡δσ ß óδσ«ñ«¼ ºá úαá¡¿µδ
ñ¿á»áº«¡á, »α«¿ßσ«ñ¿Γ »α¿ ¿¡ñѬßᵿ¿ ¼áßß¿óá ß »«¼«Θ∞ε µ¿¬½á
while ¿½¿ repeat. ìá»α¿¼Ñα, »αÑñ»«½«ª¿¼, τΓ« óá¼ ¡Ñ«íσ«ñ¿¼« ¡á⌐Γ¿
φ½Ñ¼Ñ¡Γ ¼áßß¿óá, ß«ñÑαªáΘ¿⌐ «»αÑñѽѡ¡«Ñ º¡áτÑ¡¿Ñ. éδ σ«Γ¿ΓÑ
«ßΓá¡«ó¿Γ∞ »«¿ß¬, ¬«úñá íπñÑΓ ¡á⌐ñÑ¡ ¡πª¡δ⌐ φ½Ñ¼Ñ¡Γ ¿½¿ ¬«úñá
íπñÑΓ ñ«ßΓ¿ú¡πΓ ¬«¡Ñµ ¼áßß¿óá. àß½¿ φ½Ñ¼Ñ¡Γ ¡á⌐ñÑ¡, óδ σ«Γ¿ΓÑ,
τΓ«íδ Σπ¡¬µ¿∩ óÑα¡π½á Ñú« ¿¡ñѬß; ó »α«Γ¿ó¡«¼ ß½πτáÑ, Σπ¡¬µ¿∩
ñ«½ª¡á óÑα¡πΓ∞ º¡áτÑ¡¿Ñ 0. éáΦá »Ñαóá∩ »«»δΓ¬á ¡á»¿ßá¡¿∩ Γᬫ⌐
Σπ¡¬µ¿¿ ¼«ú½á íδ óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
function FindVal(List: NumList; Count,Val: integer) : integer;
var
I : integer;
begin
FindVal := 0;
I := 1;
while (I <= Count) and (List[I] <> Val) do
Inc(I);
if I <= Count then
FindVal := I
end; { Σπ¡¬µ¿¿ FindVal }
éßÑ ºñÑß∞ «τÑ¡∞ «τÑ¡∞ σ«α«Φ«, «ñ¡á¬« Σπ¡¬µ¿∩ ¼«ªÑΓ óδºóáΓ∞
«Φ¿í¬π »Ñα¿«ñá óδ»«½¡Ñ¡¿∩, Ñß½¿ º¡áτÑ¡¿Ñ Val ¡Ñ ¡áσ«ñ¿Γß∩ ó
»αÑñѽáσ ¼áßß¿óá List ¿ ¿ß»«½∞ºπÑΓß∩ αѪ¿¼ ¡«α¼á½∞¡«ú« óδτ¿ß½Ñ¡¿∩
íπ½Ñó߬¿σ óδαáªÑ¡¿⌐. Å«τѼπ? Å«Γ«¼π τΓ« ¬«úñá óδ»«½¡∩ÑΓß∩
»«ß½Ññ¡∩∩ »α«óÑα¬á ó óÑαΦ¿¡Ñ µ¿¬½á while, º¡áτÑ¡¿Ñ I íπñÑΓ αáó¡«
Count+1. àß½¿ Count=NLMax, »α«¿º«⌐ñÑΓ óδσ«ñ ºá úαá¡¿µδ ¼áßß¿óá
List.
Æá¬á∩ »α«í½Ñ¼Ñ ¼«ªÑΓ ¿¼ÑΓ∞ ñóá αÑΦÑ¡¿∩. Äñ¡« ¿º ¡¿σ
ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ«íδ «Γ¼Ñ¡¿Γ∞ ¬«¡Γα«½∞ ñ¿á»áº«¡á. Äñ¡á¬«, φΓ«
¼«ªÑΓ ó¡ÑßΓ¿ ¡Ñºá¼ÑΓ¡δÑ «Φ¿í¬¿, «ß«íÑ¡¡« Ñß½¿ αáßß¼áΓα¿óáѼδ⌐ ¬«ñ
Σá¬Γ¿τÑ߬¿ ¿º¼Ñ¡∩ÑΓ º¡áτÑ¡¿∩. ïπτΦÑÑ, »«¬áºá¡¡«Ñ óδΦÑ αÑΦÑ¡¿Ñ
ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ óδíαáΓ∞ óδτ¿ß½Ñ¡¿Ñ ½«ú¿τÑ߬«ú« óδαáªÑ¡¿∩
½¿í« »α¿ »«¼«Θ¿ ¬«¼á¡ñδ Options|Compiler|Boolean, ½¿í« »α¿ »«¼«Θ¿
ñ¿αÑ¬Γ¿óδ {$B-}. Æᬿ¼ «íαẫ¼, Ñß½¿ I > Count, Γ« óδαáªÑ¡¿Ñ
List[I] <> Val
¡Ñ óδτ¿ß½∩ÑΓß∩ ¡¿¬«úñá.
ÄΦ¿í¬¿, σáαá¬ΓÑα¡δÑ ñ½∩ »α«úαá¼¼¿α«óá¡¿∩ ¡á áßßѼí½ÑαÑ --------
ì¿ªÑ «»¿ßá¡δ ¡Ñ¬«Γ«αδÑ «Φ¿í¬¿, σáαá¬ΓÑα¡δÑ ñ½∩
»α«úαá¼¼¿α«óá¡¿∩ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá. ä½∩ »«½πτÑ¡¿∩ í«½ÑÑ
»«ñα«í¡«⌐ ¿¡Σ«α¼áµ¿¿ «í φΓ¿σ «Φ¿í¬áσ ¿ ß»«ß«íáσ ¿σ πßΓαá¡Ñ¡¿∩
ß½ÑñπÑΓ «íαáΓ¿Γ∞ß∩ ¬ Éπ¬«ó«ñßΓóπ »«½∞º«óáΓѽ∩ »« ∩ºδ¬π Turbo
Assembler (Turbo Assembler User's Guide).
ÄΓßπΓßΓó¿Ñ ¬«¼á¡ñδ ó«ºóαáΓá ó DOS
---------------------------------
é Åá߬á½Ñ, æ¿ ¿ ñαπú¿σ ∩ºδ¬áσ «¬«¡τá¡¿Ñ αáí«Γδ »α«úαá¼¼δ ¿
ó«ºóαáΓ ó DOS »α«¿ßσ«ñ∩Γ áóΓ«¼áΓ¿τÑ߬¿, ¬«úñá ºá¬á¡τ¿óáÑΓß∩
óδ»«½¡∩Ѽδ⌐ ¬«ñ, ñáªÑ Ñß½¿ ó »α«úαá¼¼Ñ ¡ÑΓ ß»Ñµ¿á½∞¡«⌐ ¬«¼á¡ñδ
ºáóÑαΦÑ¡¿∩. é ∩ºδ¬Ñ áßßѼí½Ñαá óδ»«½¡∩εΓß∩ Γ«½∞¬« ΓÑ ñÑ⌐ßΓó¿∩,
¬«Γ«αδÑ Γ«τ¡« ºáñá¡δ ó »α«úαá¼¼Ñ. àß½¿ ºá»π߬áÑΓß∩ »α«úαá¼¼á, ó
¬«Γ«α«⌐ «ΓßπΓßΓóπÑΓ ¬«¼á¡ñá ó«ºóαáΓá ó DOS, ÑÑ óδ»«½¡Ñ¡¿Ñ »α«ßΓ«
íπñÑΓ »α«ñ«½ªáΓ∞ß∩ »«ß½Ñ ñ«ßΓ¿ªÑ¡¿∩ ¬«¡µá »α«úαá¼¼δ. ¥Γ« »α¿óÑñÑΓ
¬ Γ«¼π, τΓ« ¡áτ¡ÑΓ óδ»«½¡∩Γ∞ß∩ ¬á¬«⌐-Γ« ñαπú«⌐ ¬«ñ, ¡áσ«ñ∩Θ¿⌐ß∩ ó
ß«ßÑñ¡Ñ⌐ «í½áßΓ¿ »á¼∩Γ¿.
ÄΓßπΓßΓó¿Ñ ¬«¼á¡ñδ RET
----------------------
Åαáó¿½∞¡δ⌐ óδº«ó »«ñ»α«úαá¼¼δ ñ«½ªÑ¡ ó¬½ετáΓ∞ ó맮ó ñá¡¡«⌐
»«ñ»α«úαá¼¼δ ¿º ñαπú«ú« Σαáú¼Ñ¡Γá ¬«ñá, óδ»«½¡Ñ¡¿Ñ φΓ«⌐
»«ñ»α«úαá¼¼δ ¿ ó«ºóαáΓ ó óδºóáóΦ¿⌐ ¬«ñ. ä½∩ Γ«ú« τΓ«íδ »α«¿º«Φѽ
ó«ºóαáΓ ó óδºóáóΦ¿⌐ ¬«ñ, ó ¬«¡µÑ ¬áªñ«⌐ »«ñ»α«úαá¼¼δ ñ«½ª¡á
ßΓ«∩Γ∞ ¬«¼á¡ñá RET. àß½¿ φΓá ¬«¼á¡ñá íδ½á »α«»πΘÑ¡á »α¿ ¡á»¿ßá¡¿¿
»α«úαá¼¼δ, ÑÑ óδ»«½¡Ñ¡¿Ñ ºá¬«¡τ¿Γß∩ «Φ¿í¬«⌐.
ö«α¼¿α«óá¡¿Ñ ó«ºóαáΓá ¡Ñ»αáó¿½∞¡«ú« Γ¿»á
----------------------------------------
ä¿αÑ¬Γ¿óá PROC óδ»«½¡∩ÑΓ ñóá ñÑ⌐ßΓó¿∩. é«-»Ñαóδσ, «¡á
«»αÑñѽ∩ÑΓ ¿¼∩, »« ¬«Γ«α«¼π íπñÑΓ óδºδóáΓ∞ß∩ ¡Ñ¬«Γ«αá∩ »α«µÑñπαá.
é«-óΓ«αδσ, «¡á ºáñáÑΓ Γ¿» »α«µÑñπαδ: ñá½∞¡∩∩ (far) ¿½¿ í½¿ª¡∩∩
(near). 諼á¡ñδ ó«ºóαáΓá RET ó »α«µÑñπαáσ ñ«½ª¡δ ß««ΓóÑΓßΓó«óáΓ∞
Γ¿»π »α«µÑñπαδ, ¡Ñ »αáóñá ½¿?
ê ñá ¿ ¡ÑΓ. Åα«í½Ñ¼á ß«ßΓ«¿Γ ó Γ«¼, τΓ« 󫺼«ª¡« ¿ τáßΓ«
ªÑ½áΓѽ∞¡« úαπ»»¿α«óáΓ∞ «Γñѽ∞¡δÑ »«ñ»α«úαá¼¼δ ó Ññ¿¡πε
»α«µÑñπαπ; ¿ »«ß¬«½∞¬π φΓ¿ »«ñ»α«úαá¼¼δ ¡Ñ ¿¼ÑεΓ ß««ΓóÑΓßΓóπεΘÑ⌐
ñ¿αÑ¬Γ¿óδ PROC, ¿σ ¬«¼á¡ñδ RET ß««ΓóÑΓßΓóπεΓ Γ¿»π «íΘÑ⌐
»α«µÑñπαδ, ¬«Γ«αδ⌐ ¡Ñ «í∩ºáΓѽ∞¡« ß««ΓóÑΓßΓóπÑΓ Γ¿»π ¬áªñ«⌐
«Γñѽ∞¡«⌐ »«ñ»α«úαá¼¼δ.
ìÑ»αáó¿½∞¡á∩ αáßßΓá¡«ó¬á «»Ñαá¡ñ«ó
----------------------------------
Å«α∩ñ«¬ ß½Ññ«óá¡¿∩ «»Ñαá¡ñ«ó ó ¬«¼á¡ñáσ ∩ºδ¬á áßßѼí½Ñαá ñ½∩
¼¿¬α«»α«µÑßß«αá 8086 í«½∞Φ¿¡ßΓóπ ½εñÑ⌐ ¬áªÑΓß∩ »ÑαÑóÑα¡πΓδ¼ (¿
¿ßσ«ñ∩ ¿º φΓ«ú«, «¡¿ ¿¡«úñá »δΓáεΓß∩ »«»αáó¿Γ∞ Ñú«). àß½¿ ßΓ᫬á
mov ax,bx
«º¡áτáÑΓ "»ÑαÑß½áΓ∞ AX ó BX", Γ« φΓá ßΓ᫬á íπñÑΓ Γ«τ¡«
óδ»«½¡∩Γ∞ß∩ ß½Ñóá ¡á»αáó«, ¿ ¿¼Ñ¡¡« Γᬿ¼ «íαẫ¼ ¼¡«ú¿Ñ
»α«¿ºó«ñ¿Γѽ¿ ¼¿¬α«»α«µÑßß«α«ó αáºαáíáΓδóáεΓ ∩ºδ¬¿ áßßѼí½Ñαá.
Äñ¡á¬« Σ¿α¼á Intel »α¿ αáºαáí«Γ¬Ñ ∩ºδ¬á áßßѼ½Ñαá ñ½∩ »α«µÑßß«αá
8086 »αÑñ»«τ½á ñαπú«⌐ »«ñσ«ñ, ¿ ñ½∩ ¡áß φΓá ßΓα«¬á «º¡áτáÑΓ
"»ÑαÑß½áΓ∞ BX ó AX", τΓ« ó ¡Ñ¬«Γ«αδσ ß½πτá∩σ ¼«ªÑΓ óδºóáΓ∞
»πΓá¡¿µπ.
ÄΓßπΓßΓó¿Ñ ßΓÑ¬á ¿½¿ αѺÑαó¿α«óá¡¿Ñ ß½¿Φ¬«¼ ¼á½Ñ¡∞¬«ú« ßΓѬá
------------------------------------------------------------
é í«½∞Φ¿¡ßΓóÑ ß½πτáÑó, Ñß½¿ óδ ¡ÑΓ«τ¡« óδñѽ∩ÑΓÑ »á¼∩Γ∞ »«ñ
ßΓѬ, óδ ߬«½∞º¿ΓÑ »« Γ«¡¬«¼π ½∞ñπ. Åα«úαá¼¼δ, ó ¬«Γ«αδσ ¡Ñ
óδñѽѡ« ¼ÑßΓ« »«ñ ßΓѬ, ¿¡«úñá íπñπΓ αáí«ΓáΓ∞, ¡« ¡Ñ½∞º∩ íδΓ∞
πóÑαÑ¡¡δ¼ ó Γ«¼, τΓ« «¡¿ íπñπΓ αáí«ΓáΓ∞ »α¿ ½εíδσ πß½«ó¿∩σ.
ü«½∞Φ¿¡ßΓó« »α«úαá¼¼ ñ«½ª¡« ¿¼ÑΓ∞ ñ¿αÑ¬Γ¿óπ .STACK, ¬«Γ«αá∩
αѺÑαó¿απÑΓ »á¼∩Γ∞ »«ñ ßΓѬ, ¿ ñ½∩ ¬áªñ«⌐ »α«úαá¼¼δ φΓá ñ¿αÑ¬Γ¿óá
ñ«½ª¡á αѺÑαó¿α«óáΓ∞ í«½∞ΦÑ ¼ÑßΓá, τѼ ΓαÑíπÑΓß∩ ñ½∩ ßἫú«
ú½πí«¬«ú« ßΓѬá, ¬«Γ«αδ⌐ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ »α¿ αáí«ΓÑ
»α«úαá¼¼δ.
éδº«ó »«ñ»α«úαá¼¼δ, ¬«Γ«αδ⌐ π¡¿τΓ«ªáÑΓ ß«ñÑন¼«Ñ ¡πª¡δσ αÑú¿ßΓα«ó
------------------------------------------------------------------
Åα¿ ¡á»¿ßá¡¿¿ »α«úαá¼¼δ ¡á áßßѼí½ÑαÑ ½Ñú¬« »αÑñßΓáó½∩Γ∞
ßÑíÑ αÑú¿ßΓαδ ¬á¬ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ, ¬«Γ«αδÑ «ΓóÑτáεΓ ºá
¿ß»«½∞º«óá¡¿Ñ »α«µÑñπαδ, ß ¬«Γ«αδ⌐ óδ αáí«ΓáÑΓÑ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ.
é τáßΓ¡«ßΓ¿, »α«úαá¼¼¿ßΓδ ¿¡«úñá »«½áúáεΓ, τΓ« »α¿ ó맮óÑ ñαπú¿σ
»α«µÑñπα ß«ñÑন¼«Ñ αÑú¿ßΓα«ó «ßΓáÑΓß∩ íѺ ¿º¼Ñ¡Ñ¡¿∩. ì« φΓ«
ß«óßѼ ¡Ñ Γᬠ- αÑú¿ßΓαδ ∩ó½∩εΓß∩ ú½«íá½∞¡δ¼¿ »ÑαѼѡ¡δ¼¿, ¿
¬áªñá∩ »α«µÑñπαá ¼«ªÑΓ ½¿í« ß«σαá¡∩Γ∞, ½¿í« π¡¿τΓ«ªáΓ∞ ß«ñÑন¼«Ñ
½εí«ú« ¿½¿ óßÑσ αÑú¿ßΓα«ó.
ìÑ»αáó¿½∞¡«Ñ ¿ß»«½∞º«óá¡¿Ñ πß½«ó¡δσ »ÑαÑσ«ñ«ó
---------------------------------------------
Äí¿½¿Ñ ¬«¼á¡ñ πß½«ó¡«ú« »ÑαÑσ«ñá ó ∩ºδ¬Ñ áßßѼí½Ñαá (JE,
JNE, JC, JNC, JA, JB, JG ¿ Γ.ñ.) «íÑß»Ñτ¿óáεΓ í«½∞Φπε ú¿í¬«ßΓ∞ ó
¡á»¿ßá¡¿¿ »α«úαá¼¼δ ¿ ó Γ« ªÑ óαѼ∩ ¼«ªÑΓ »α¿óÑßΓ¿ ¬
¿ß»«½∞º«óá¡¿ε ¡Ñ Γ«⌐ ¬«¼á¡ñδ, ¬«Γ«αá∩ ΓαÑíπÑΓß∩ ó ¬«¡¬αÑΓ¡«¼
ß½πτáÑ. èα«¼Ñ Γ«ú«, »«ß¬«½∞¬π ñ½∩ «íαáí«Γ¬¿ πß½«ó¿∩ ó ∩ºδ¬Ñ
áßßѼí½Ñαá ΓαÑíπÑΓß∩ ¬á¬ ¼¿¡¿¼π¼ ñóÑ ßΓ᫬¿ («ñ¡á ñ½∩ ßαáó¡Ñ¡¿∩ ¿
«ñ¡á ñ½∩ πß½«ó¡«ú« »ÑαÑσ«ñá), á ñ½∩ «íαáí«Γ¬¿ ß½«ª¡δσ πß½«ó¿⌐
º¡áτ¿Γѽ∞¡« í«½∞ΦÑ, «íαáí«Γ¬á πß½«ó¿⌐ ó áßßѼí½ÑαÑ ¼Ñ¡ÑÑ
¿¡Γπ¿Γ¿ó¡á ¿ í«½∞ΦÑ »«ñóÑαªÑ¡á «Φ¿í¬á¼, τѼ ó Åá߬á½Ñ ¿½¿ æ¿.
ÄΦ¿í¬¿ »α¿ »«óΓ«αÑ¡¿¿ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬
--------------------------------------------
諼á¡ñδ «íαáí«Γ¬¿ ßΓ᫬ ¿¼ÑεΓ «ñ¡π ¡Ñ«íτ¡πε «ß«íÑ¡¡«ßΓ∞:
»«ß½Ñ ¿σ óδ»«½¡Ñ¡¿∩ ¿ß»«½∞ºπѼδÑ ¿¼¿ π¬áºáΓѽ¿ ßñó¿úáεΓß∩ Γᬿ¼
«íαẫ¼, τΓ« π¬áºδóáεΓ ¡á áñαÑß, «Γ½¿τáεΘ¿⌐ß∩ ¡á 1 íá⌐Γ (¿½¿ 2
íá⌐Γá, Ñß½¿ Ñß½¿ ñ½¿¡á ¬«¼á¡ñδ αáó¡á «ñ¡«¼π ß½«óπ) «Γ »«ß½Ññ¡Ñú«
«íαáí«Γá¡¡«ú« áñαÑßá. ¥Γ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡Ñ¬«Γ«α«⌐ »πΓá¡¿µÑ »α¿
»«óΓ«αÑ¡¿¿ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬, «ß«íÑ¡¡« ¬«¼á¡ñ REP SCAS ¿ REP
CMPS.
ìÑ»αáó¿½∞¡δ⌐ αáßτÑΓ ¡á ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ CX
------------------------------------------
Å«óΓ«α¡«Ñ óδ»«½¡Ñ¡¿¿ ½εíδσ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬ »α¿
αáóÑ¡ßΓóÑ ¡π½ε αÑú¿ßΓαá CX ¡Ñ ñáßΓ ¡¿¬á¬«ú« αѺπ½∞ΓáΓá. ¥Γ« ¼«ªÑΓ
íδΓ∞ πñ«í¡« ó Γ«¼ ß¼δß½Ñ, τΓ« ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ »α«óÑα∩Γ∞ Ñú« ¡á
¡«½∞ »ÑαÑñ »«óΓ«α¡δ¼ óδ»«½¡Ñ¡¿Ñ¼ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬. æ ñαπú«⌐
ßΓ«α«¡δ, ¡Ñ󫺼«ª¡« »«½πτ¿Γ∞ ñ«ßΓπ» ¬ ¬áªñ«¼π íá⌐Γπ ó ßÑú¼Ñ¡ΓÑ ß
»«¼«Θ∞ε íá⌐Γ«óδσ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬.
ìÑ»αáó¿½∞¡á∩ πßΓá¡«ó¬á Σ½áúá ¡á»αáó½Ñ¡¿∩
----------------------------------------
Åα¿ óδ»«½¡Ñ¡¿¿ ¬«¼á¡ñδ «íαáí«Γ¬¿ ßΓ᫬ ßó∩ºá¡¡δÑ ß ¡Ñ⌐
π¬áºáΓѽ¿ (SI, DI ¿½¿ «íá) »«½πτáεΓ »«½«ª¿Γѽ∞¡«Ñ ¿½¿
«Γα¿µáΓѽ∞¡«Ñ »α¿αáΘÑ¡¿Ñ. ¥Γ« ºáó¿ß¿Γ «Γ ß«ßΓ«∩¡¿∩ Σ½áúá
¡á»αáó½Ñ¡¿∩. æ »«¼«Θ∞ε ¬«¼á¡ñδ CLD Σ½áú ¡á»αáó½Ñ¡¿∩ ¼«ªÑΓ íδΓ∞
ßíα«ΦÑ¡ ó 0; ó φΓ«¼ ß½πτáÑ »α¿ óδ»«½¡Ñ¡¿¿ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬
π¬áºáΓѽ∞ »«½πτáÑΓ »«½«ª¿Γѽ∞¡«Ñ »α¿αáΘÑ¡¿Ñ (ß¼ÑΘáÑΓß∩ ó ßΓ«α«¡π
ßΓáαΦ¿σ áñαÑß«ó). æ »«¼«Θ∞ε ¬«¼á¡ñδ STD Σ½áú ¡á»αáó½Ñ¡¿∩
πßΓá¡áó½¿óáÑΓß∩ ó 1; ó φΓ«¼ ß½πτáÑ π¬áºáΓѽ∞ »«½πτáÑΓ
«Γα¿µáΓѽ∞¡«Ñ »α¿αáΘÑ¡¿Ñ (ßñó¿úáÑΓß∩ ó ßΓ«α«¡π ¼½áñΦ¿σ áñαÑß«ó).
Å«ß½Ñ Γ«ú«, ¬á¬ Σ½áú ¡á»αáó½Ñ¡¿∩ íδ½ πßΓá¡«ó½Ñ¡ ó «»αÑñѽѡ¡«Ñ
ß«ßΓ«∩¡¿Ñ, «¡ íπñÑΓ «ßΓáóáΓ∞ß∩ ó ¡Ñ¼ ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ
óδ»«½¡Ñ¡á ÑΘÑ «ñ¡á ¬«¼á¡ñá CLD ¿½¿ STD, ¿½¿ »«¬á º¡áτÑ¡¿∩ Σ½áú«ó
¡Ñ íπñπΓ ¿ºó½ÑτÑ¡δ ¿º ßΓѬá ß »«¼«Θ∞ε ¬«¼á¡ñδ POPF ¿½¿ IRET. æ
«ñ¡«⌐ ßΓ«α«¡δ, πñ«í¡« ¿¼ÑΓ∞ 󫺼«ª¡«ßΓ∞ πßΓá¡áó½¿óáΓ∞ Σ½áú
¡á»αáó½Ñ¡¿∩ ó «»αÑñѽѡ¡«Ñ ß«ßΓ«∩¡¿Ñ Γ«½∞¬« «ñ¿¡ αáº, á ºáΓѼ
óδ»«½¡∩Γ∞ ßÑα¿ε ¬«¼á¡ñ, ¬«Γ«αδÑ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ ºáñá¡¡«Ñ
¡á»αáó½Ñ¡¿Ñ. æ ñαπú«⌐ ßΓ«α«¡δ, φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »«∩ó½Ñ¡¿ε
¡ÑπßΓ«⌐τ¿óδσ ¿ Γαπñ¡««í¡áαπª¿óáѼδσ «Φ¿í«¬, ó αѺπ½∞ΓáΓÑ ¬«Γ«αδσ
¬«¼á¡ñδ «íαáí«Γ¬¿ ßΓ᫬ αáí«ΓáεΓ »«-αạ«¼π ó ºáó¿ß¿¼«ßΓ¿ «Γ
αáí«Γδ ¬«¼á¡ñ, ¬«Γ«αδÑ í뫨 óδ»«½¡Ñ¡δ º¡áτ¿Γѽ∞¡« αá¡∞ΦÑ.
ÄΦ¿í¬¿ »α¿ »«óΓ«αÑ¡¿¿ ¬«¼á¡ñ ßαáó¡Ñ¡¿∩ ßΓ᫬
--------------------------------------------
諼á¡ñá CMPS ßαáó¡¿óáÑΓ ß«ñÑন¼«Ñ ñóπσ «í½áßΓÑ⌐ »á¼∩Γ¿, á
¬«¼á¡ñá SCAS ßαáó¡¿óáÑΓ ß«ñÑন¼«Ñ ¡á¬á»½¿óáεΘÑú« αÑú¿ßΓαá ß
ß«ñÑন¼δ¼ «í½áßΓ¿ »á¼∩Γ¿. è«úñá »ÑαÑñ «ñ¡«⌐ ¿º φΓ¿σ ¬«¼á¡ñ ßΓ«¿Γ
»αÑΣ¿¬ß REPE, «¡á óδ»«½¡∩ÑΓ ßαáó¡Ñ¡¿Ñ, ½¿í« »«¬á CX ¡Ñ ßΓá¡«ó¿Γß∩
αáó¡δ¼ ¡π½ε, ½¿í« »«¬á ¡Ñ «í¡áαπª¿Γß∩, τΓ« «»Ñαá¡ñδ ¡Ñ αáó¡δ.
è«úñá »ÑαÑñ ¬«¼á¡ñ«⌐ ßΓ«¿Γ »αÑΣ¿¬ß REPNE, «¡á óδ»«½¡∩ÑΓ
ßαáó¡Ñ¡¿Ñ, ½¿í« »«¬á CX ¡Ñ ßΓá¡«ó¿Γß∩ αáó¡δ¼ ¡π½ε, ½¿í« »«¬á ¡Ñ
«í¡áαπª¿Γß∩ τΓ« «»Ñαá¡ñδ αáó¡δ. è ¡ÑßτáßΓ∞ε, ½Ñú¬« »ÑαÑ»πΓáΓ∞,
úñÑ ¬á¬«⌐ »αÑΣ¿¬ß ¡πª¡« ¿ß»«½∞º«óáΓ∞.
ÄΦ¿í¬¿ »α¿ ¡áº¡áτÑ¡¿¿ ßÑú¼Ñ¡Γá ßΓ᫬
------------------------------------
éßÑ ßΓ᫬«óδÑ ¬«¼á¡ñδ »« π¼«½τá¡¿ε ¿ß»«½∞ºπεΓ ó ¬áτÑßΓóÑ
ßÑú¼Ñ¡Γá ¿ßσ«ñ¡δσ ñá¡¡δσ (Ñß½¿ «¡ ÑßΓ∞) ßÑú¼Ñ¡Γ DS, á ó ¬áτÑßΓóÑ
ßÑú¼Ñ¡Γá αѺπ½∞Γ¿απεΘ¿σ ñá¡¡δσ (Ñß½¿ «¡ ÑßΓ∞) ßÑú¼Ñ¡Γ ES. ïÑú¬«
ºáíδΓ∞ «í φΓ«¼ ¿ »«»δΓáΓ∞ß∩, ߬áªÑ¼, óδ»«½¡¿Γ∞ ¬«¼á¡ñπ STOSB ¡áñ
ßÑú¼Ñ¡Γ«¼ ñá¡¡δσ, »«ß¬«½∞¬π óßÑ ñá¡¡δÑ, «íαáíáΓδóáѼδÑ ¡Ñ
ßΓ᫬«ó묨 ¬«¼á¡ñἿ, «íδτ¡« ¡áσ«ñ∩Γß∩ ¿¼Ñ¡¡« ó φΓ«¼ ßÑú¼Ñ¡ΓÑ.
ìÑ»αáó¿½∞¡«Ñ »αÑ«íαẫóá¡¿Ñ ¿º íá⌐Γá ó ß½«ó«
--------------------------------------------
é «íΘѼ ß½πτáÑ, ñ½∩ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬ ªÑ½áΓѽ∞¡«
¿ß»«½∞º«óáΓ∞ ¼á¬ß¿¼á½∞¡« 󫺼«ª¡δ⌐ αẼÑα ñá¡¡δσ («íδτ¡« ß½«ó«, á
ñ½∩ »α«µÑßß«αá 80386 - ñó«⌐¡«Ñ ß½«ó«), »«ß¬«½∞¬π ß ñá¡¡δ¼¿
í«½∞ΦÑú« αẼÑαá φΓ¿ ¬«¼á¡ñδ «íδτ¡« αáí«ΓáεΓ íδßΓαÑÑ.
Äñ¡á¬« ºñÑß∞ ¿¼ÑεΓß∩ ñóÑ ½«óπΦ¬¿. é«-»Ñαóδσ, »αÑ«íαẫóá¡¿Ñ
¿º ¬«½¿τÑßΓóá íá⌐Γ«ó ó ¬«½¿τÑßΓó« ß½«ó ß »«¼«Θ∞ε »α«ßΓ«⌐ ¬«¼á¡ñδ
shr cx,l
»α¿óÑñÑΓ ¬ »«ΓÑαÑ íá⌐Γá, Ñß½¿ CX ¿¼ÑÑΓ ¡ÑτÑΓ¡«Ñ º¡áτÑ¡¿Ñ,
»«ß¬«½∞¬π ¼½áñΦ¿⌐ º¡áτáΘ¿⌐ í¿Γ íπñÑΓ ßñó¿¡πΓ ºá »αÑñѽδ ß½«óá.
é«-óΓ«αδσ, ß½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« ¬«¼á¡ñá SHR ñѽ¿Γ ¬«½¿τÑßΓó«
íá⌐Γ«ó ¡á ñóá. êß»«½∞º«óá¡¿Ñ, ߬áªÑ¼, ¬«¼á¡ñδ STOSW ß ¬«½¿τÑßΓó«¼
íá⌐Γ«ó, á ¡Ñ ß½«ó, ¼«ªÑΓ π¡¿τΓ«ª¿Γ∞ ñαπú¿Ñ ñá¡¡δÑ ¿ óδºóáΓ∞ ßá¼δÑ
αạ««íαạδÑ «Φ¿í¬¿.
êß»«½∞º«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ »αÑΣ¿¬ß«ó
----------------------------------
諼á¡ñδ «íαáí«Γ¬¿ ßΓ᫬ ß ¡Ñ߬«½∞¬¿¼¿ »αÑΣ¿¬ßἿ αáí«ΓáεΓ
¡Ñ¡áñѪ¡«, ¿ ¿σ ß½ÑñπÑΓ »« 󫺼«ª¡«ßΓ¿ ¿ºíÑúáΓ∞.
ìÑ«í∩ºáΓѽ∞¡δÑ «»Ñαá¡ñδ ó ¬«¼á¡ñáσ «íαáí«Γ¬¿ ßΓ᫬
--------------------------------------------------
ìÑ«í∩ºáΓѽ∞¡δÑ «»Ñαá¡ñδ ó ¬«¼á¡ñáσ «íαáí«Γ¬¿ ßΓ᫬
¿ß»«½∞ºπεΓß∩ Γ«½∞¬« ñ½∩ ºáñá¡¿∩ αẼÑαá ñá¡¡δσ ¿ ¿º¼Ñ¡Ñ¡¿∩
ßÑú¼Ñ¡Γá ¿ ¡Ñ úáαá¡Γ¿απεΓ Σá¬Γ¿τÑ߬¿⌐ ñ«ßΓπ» ¬ ñá¡¡«⌐ «í½áßΓ¿
»á¼∩Γ¿.
ô¡¿τΓ«ªÑ¡¿Ñ ß«ñÑন¼«ú« αÑú¿ßΓαá »α¿ π¼¡«ªÑ¡¿¿
----------------------------------------------
ô¼¡«ªÑ¡¿Ñ (8 ¡á 8 í¿Γ«ó, 16 ¡á 16 í¿Γ«ó, ½¿í« 32 ¡á 32 í¿Γá)
óßÑúñá π¡¿τΓ«ªáÑΓ ß«ñÑন¼«Ñ ¬á¬ ¼¿¡¿¼π¼ «ñ¡«ú« αÑú¿ßΓαá, ¡Ñ
∩ó½∩εΘÑú«ß∩ ¡á¬á»½¿óáεΘ¿¼ αÑú¿ßΓα«¼, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó
¬áτÑßΓóÑ ¿ßσ«ñ¡«ú« «»Ñαá¡ñá.
ÄΦ¿í¬¿, ßó∩ºá¡¡δÑ ß ¿º¼Ñ¡Ñ¡¿Ñ¼ ß«ñÑন¼«ú« ¡Ñ¬«Γ«αδσ
αÑú¿ßΓα«ó ¬«¼á¡ñἿ «íαáí«Γ¬¿ ßΓ᫬
----------------------------------------------------
諼á¡ñδ «íαáí«Γ¬¿ ßΓ᫬, Γá¬¿Ñ ¬á¬ MOVS, STOS, LODS, CMPS ¿
SCAS, ¼«úπΓ ó½¿∩Γ∞ ¡á ß«ßΓ«∩¡¿Ñ ¡Ñ¬«Γ«αδσ Σ½áú«ó ¿ ß«ñÑন¼«Ñ
ΓαÑσ αÑú¿ßΓα«ó »α¿ óδ»«½¡Ñ¡¿¿ Ññ¿¡ßΓóÑ¡¡«⌐ ¬«¼á¡ñδ. Åα¿
¿ß»«½∞º«óá¡¿¿ ¬«¼á¡ñ «íαáí«Γ¬¿ ßΓ᫬ ß½ÑñπÑΓ »«¼¡¿Γ∞, τΓ«
ß«ñÑন¼«Ñ «ñ¡«ú« ¿º αÑú¿ßΓα«ó SI ¿½¿ DI (¿½¿ «í«¿σ ßαáºπ)
»«½πτáÑΓ »«½«ª¿Γѽ∞¡«Ñ ¿½¿ «Γα¿µáΓѽ∞¡«Ñ »α¿αáΘÑ¡¿Ñ (ó
ºáó¿ß¿¼«ßΓ¿ «Γ ß«ßΓ«∩¡¿∩ Σ½áúá ¡á»αáó½Ñ¡¿∩) »α¿ ¬áªñ«¼ óδ»«½¡Ñ¡¿¿
¬«¼á¡ñδ «íαáí«Γ¬¿ ßΓ᫬. æ«ñÑন¼«Ñ αÑú¿ßΓαá CX Γá¬ªÑ »«½πτáÑΓ
«Γα¿µáΓѽ∞¡«Ñ »α¿αáΘÑ¡¿Ñ ¬á¬ ¼¿¡¿¼π¼ «ñ¿¡ αẠ¿, 󫺼«ª¡«,
π¼Ñ¡∞ΦáÑΓß∩ ñ« ¡π½∩ »α¿ ¬áªñ«¼ ¿ß»«½∞º«óá¡¿¿ ¬«¼á¡ñδ «íαáí«Γ¬¿
ßΓ᫬ ß »αÑΣ¿¬ß«¼ REP.
ìÑ»αáó¿½∞¡«Ñ »αÑñ»«½«ªÑ¡¿Ñ « Γ«¼, τΓ« ¡Ñ¬«Γ«αδÑ
¬«¼á¡ñδ ¿º¼Ñ¡∩εΓ ß«ßΓ«∩¡¿Ñ Σ½áúá »ÑαÑ¡«ßá
-----------------------------------------------
é Γ« óαѼ∩ ¬á¬ «ñ¡¿ ¬«¼á¡ñδ ¡Ñ«ª¿ñá¡¡« ñ½∩ »α«úαá¼¼¿ßΓá
ó½¿∩εΓ ¡á ß«ßΓ«∩¡¿Ñ αÑú¿ßΓα«ó ¿ Σ½áú«ó, ñαπú¿Ñ ¬«¼á¡ñδ ¡Ñ ó½¿∩εΓ
ñáªÑ ¡á ΓÑ Σ½áú¿, ß«ßΓ«∩¡¿Ñ ¬«Γ«αδσ í佫 íδ ªÑ½áΓѽ∞¡« ¿º¼Ñ¡¿Γ∞.
æ½¿Φ¬«¼ ñ½¿Γѽ∞¡«Ñ «ª¿ñá¡¿Ñ ¿ß»«½∞º«óá¡¿∩ Σ½áú«ó
------------------------------------------------
æ«ßΓ«∩¡¿Ñ Σ½áú«ó ß«σαá¡∩ÑΓß∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ
óδ»«½¡Ñ¡á ß½ÑñπεΘá∩ ¬«¼á¡ñá, ¬«Γ«αá∩ Ñú« ¿º¼Ñ¡∩ÑΓ, τΓ« «íδτ¡«
»α«¿ßσ«ñ¿Γ ñ«ßΓáΓ«τ¡« íδßΓα«. Å«φΓ«¼π αѬ«¼Ñ¡ñπÑΓß∩ »«ß½Ñ
πßΓá¡«ó¬¿ Σ½áú«ó óδ»«½¡∩Γ∞ ñÑ⌐ßΓó¿∩ ¡áñ ¡¿¼¿ ¬á¬ ¼«ª¡« íδßΓαÑÑ,
τΓ«íδ ¿ºíѪáΓ∞ ßá¼δσ αạ««íαạδσ «Φ¿í«¬, ßó∩ºá¡¡δσ ß ¡ÑóÑα¡«⌐
πßΓá¡«ó¬«⌐ Σ½áú«ó.
æ¼ÑΦÑ¡¿Ñ «»Ñαá¡ñ«ó ó »á¼∩Γ¿ ¿ »α«¼ÑªπΓ«τ¡δσ «»Ñαá¡ñ«ó
-----------------------------------------------------
Åα«úαá¼¼á ¡á ∩ºδ¬Ñ áßßѼí½Ñαá ¼«ªÑΓ «íαáΘáΓ∞ß∩ ½¿í« ¬
ß¼ÑΘÑ¡¿ε «í½áßΓ¿ »á¼∩Γ¿, ó ¬«Γ«α«⌐ σαá¡¿Γß∩ »ÑαѼѡ¡á∩, ½¿í« ¬
º¡áτÑ¡¿ε φΓ«⌐ »ÑαѼѡ¡«⌐. è ß«ªá½Ñ¡¿ε, ó ∩ºδ¬Ñ áßßѼí½Ñαá ¡ÑΓ ¡¿
¿¡Γπ¿Γ¿ó¡δσ, ¡¿ ßΓα«ú¿σ ß»«ß«í«ó, »«ºó«½∩εΘ¿σ αẽ¿τ¿Γ∞ φΓ¿ ñóá
ó¿ñá «íαáΘÑ¡¿⌐, ¿ ó αѺπ½∞ΓáΓÑ »α«úαá¼¼¿ßΓδ τáßΓ« »πΓáεΓ
«íαáΘÑ¡¿∩ ¬ ß¼ÑΘÑ¡¿ε ¿ «íαáΘÑ¡¿∩ ¬ º¡áτÑ¡¿ε.
ÄΦ¿í¬¿, ßó∩ºá¡¡δÑ ß ó«ºóαáΓ«¼ ó ¡áτὫ ßÑú¼Ñ¡Γá
-----------------------------------------------
Äñ¿¡ ¿º ßá¼δσ ß½«ª¡δσ ¼«¼Ñ¡Γ«ó ó »α«úαá¼¼¿α«óá¡¿¿ ñ½∩
¼¿¬α«»α«µÑßß«αá 8086 ß«ßΓ«¿Γ ó Γ«¼, τΓ« ¬ »á¼∩Γ¿ ¡Ñ½∞º∩
«íαáΘáΓ∞ß∩ ¬á¬ ¬ «ñ¡«¼π í«½∞Φ«¼π ¼áßß¿óπ íá⌐Γ«ó. é¼ÑßΓ« φΓ«ú«
»á¼∩Γ∞ ñѽ¿Γß∩ ¡á τáßΓ¿ (ßÑú¼Ñ¡Γδ) αẼÑα«¼ 64 èüá⌐Γá, ¿ ñ«ßΓπ» ¬
¡¿¼ «ßπΘÑßΓó½∩ÑΓß∩ τÑαѺ ßÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ. æÑú¼Ñ¡Γᵿ∩ »á¼∩Γ¿
¼«ªÑΓ óδºóáΓ∞ Γαπñ¡««í¡áαπª¿óáѼδÑ «Φ¿í¬¿, »«ß¬«½∞¬π Ñß½¿
»α«úαá¼¼á »δΓáÑΓß∩ «íαáΓ¿Γ∞ß∩ ¬ áñαÑßπ, ¬«Γ«αδ⌐ ¡áσ«ñ¿Γß∩ ºá
úαá¡¿µá¼¿ ßÑú¼Ñ¡Γá, ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ó¼ÑßΓ« φΓ«ú« »α«¿ßσ«ñ¿Γ
ó«ºóαáΓ ó ¡áτὫ Γ«ú« ªÑ ßÑú¼Ñ¡Γá.
æ«σαá¡Ñ¡¿Ñ ß«ñÑন¼«ú« αÑú¿ßΓα«ó »α¿ «íαáí«Γ¬Ñ »αÑαδóá¡¿⌐
---------------------------------------------------------
èáªñδ⌐ «íαáí«Γτ¿¬ »αÑαδóá¡¿⌐ ñ«½ªÑ¡ «í∩ºáΓѽ∞¡« ß«σαá¡∩Γ∞
ß«ñÑন¼«Ñ óßÑσ αÑú¿ßΓα«ó. ò«Γ∩ ¿ ñ«»π߬áÑΓß∩ ß«σαá¡∩Γ∞
ß«ñÑন¼«Ñ Γ«½∞¬« ΓÑσ αÑú¿ßΓα«ó, ¬«Γ«α«Ñ ¿º¼Ñ¡∩ÑΓß∩ ñá¡¡δ¼
«íαáí«Γτ¿¬«¼ »αÑαδóá¡¿⌐, ñ½∩ ¡áñѪ¡«ßΓ¿ αáí«Γδ óßÑ ªÑ
αѬ«¼Ñ¡ñπÑΓß∩ ºá¡«ß¿Γ∞ ß«ñÑন¼«Ñ óßÑσ αÑú¿ßΓα«ó ó ßΓѬ »α¿ óσ«ñÑ
ó «íαáí«Γτ¿¬ »αÑαδóá¡¿⌐ ¿ ¿ºó½Ñ¬áΓ∞ Ñú« ¿º ßΓÑ¬á »α¿ óδσ«ñÑ.
ÄΦ¿í¬¿, ßó∩ºá¡¡δÑ ß ¿ú¡«α¿α«ó᡿Ѽ úαπ»» ó Γáí½¿µáσ
«»Ñαá¡ñ«ó ¿ ñá¡¡δσ
---------------------------------------------------
êß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ¡δσ úαπ»» »«ºó«½∩ÑΓ »α«úαá¼¼¿ßΓπ
½«ú¿τÑ߬¿ αáºí¿óáΓ∞ ñá¡¡δÑ ¡á ¡Ñ߬«½∞¬« «í½áßΓÑ⌐, ¿ß¬½ετá∩ »α¿
φΓ«¼ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ºáúαπªáΓ∞ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα ¬áªñδ⌐ αáº, ¬«úñá
¡Ñ«íσ«ñ¿¼« »ÑαÑ⌐Γ¿ «Γ «ñ¡«⌐ ¿º Γá¬¿σ ½«ú¿τÑ߬¿σ «í½áßΓÑ⌐ ñá¡¡δσ ¬
ñαπú«⌐.
è ß«ªá½Ñ¡¿ε, Γ«Γ ß»«ß«í, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «íαáí«Γ¬¿
ßÑú¼Ñ¡Γ¡δσ úαπ»» ó ∩ºδ¬Ñ Macro Assembler Σ¿α¼δ Microsoft (MASM),
¼«ªÑΓ óδºóáΓ∞ ¡Ñ¬«Γ«αδÑ »α«í½Ñ¼δ, ¿ »«¬á ¡Ñ »«∩ó¿½ß∩ ∩ºδ¬ Turbo
Assembler, ßÑú¼Ñ¡Γ¡δÑ úαπ»»δ ñ«ßΓáó½∩½¿ »α«úαá¼¼¿ßΓá¼ ¼¡«ú«
¡Ñ»α¿∩Γ«ßΓÑ⌐. ê σ«Γ∩ φΓ¿σ ¡Ñ»α¿∩Γ¡«ßΓÑ⌐ »αá¬Γ¿τÑ߬¿ ¡Ñ󫺼«ª¡«
í佫 ¿ºíѪáΓ∞, ßÑú¼Ñ¡Γ¡δÑ úαπ»»δ í뫨 ¡πª¡δ ñ½∩ ßó∩º¿
áßßѼí½Ñα¡«ú« ¬«ñá ß ∩ºδ¬á¼¿ óδß«¬«ú« πα«ó¡∩, Γᬿ¼¿ ¬á¬ æ¿.
é αѪ¿¼Ñ Quirks ∩ºδ¬á MASM Turbo Assembler φ¼π½¿απÑΓ MASM, ¿
φΓ« «º¡áτáÑΓ, τΓ« ó φΓ«¼ αѪ¿¼Ñ «¡ ¿¼ÑÑΓ ΓÑ ªÑ »α«í½Ñ¼δ, τΓ« ¿
MASM. àß½¿ óδ ¡Ñ ß«í¿αáΓÑß∞ ¿ß»«½∞º«óáΓ∞ αѪ¿¼ Quirks ∩ºδ¬á MASM,
¼«ªÑΓÑ í«½∞ΦÑ ¡¿τÑú« « ¡Ñ¼ ¡Ñ τ¿ΓáΓ∞, «ñ¡á¬« Ñß½¿ óδ »½á¡¿απÑΓÑ
αáí«ΓáΓ∞ ß φΓ¿¼ αѪ¿¼«¼, óá¼ ß½ÑñπÑΓ «íαáΓ¿Γ∞ß∩ ºá ñ«»«½¡¿Γѽ∞¡«⌐
¿¡Σ«α¼áµ¿Ñ⌐ ¬ Éπ¬«ó«ñßΓóπ »«½∞º«óáΓѽ∩ »« ∩ºδ¬π Turbo Assembler.
Åα«óÑα¬á »α«úαá¼¼δ ¡á Γ«τ¡«ßΓ∞
-----------------------------------------------------------------
Åα«óÑα¬á αáí«Γ«ß»«ß«í¡«ßΓ¿ »α«úαá¼¼δ ß ñ«ßΓ«óÑα¡δ¼¿ óσ«ñ¡δ¼¿
ñá¡¡δ¼¿ ∩ó½∩ÑΓß∩ ½¿Φ∞ τáßΓ∞ε ÑÑ ΓÑßΓ¿α«óá¡¿∩. é ß½ÑñπεΘ¿σ
αáºñѽáσ αáßß¼«ΓαÑ¡δ ¡Ñ¬«Γ«αδÑ ó᪡δÑ ß»«ß«íδ ΓÑßΓ¿α«óá¡¿∩,
¬«Γ«αδ¼ ¡Ñ«íσ«ñ¿¼« »«ñóÑαú¡πΓ∞ ¬áªñπε »α«úαá¼¼π ¿ »«ñ»α«úαá¼¼π,
»αѪñÑ τѼ ¼«ª¡« í佫 íδ ß πóÑαÑ¡¡«ßΓ∞ε ߬áºáΓ∞, τΓ« «¡á αáí«ΓáÑΓ
¡áñѪ¡«.
Åα«óÑα¬á úαá¡¿τ¡δσ πß½«ó¿⌐ ------------------------------------
ä½∩ Γ«ú« τΓ«íδ πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ« »«ñ»α«úαá¼¼á ¡«α¼á½∞¡«
αáí«ΓáÑΓ ó ¡Ñ¬«Γ«α«¼ ñ¿á»áº«¡Ñ º¡áτÑ¡¿⌐ óσ«ñ¡δσ ñá¡¡δσ, ¡áñ«
»α«óÑα¿Γ∞ ÑÑ αáí«Γ«ß»«ß«í¡«ßΓ∞ ß« º¡áτÑ¡¿∩¼¿ óσ«ñ¡δσ ñá¡¡δσ,
½ÑªáΘ¿σ ¡á úαá¡¿µáσ ñ«»πßΓ¿¼«ú« ñ¿á»áº«¡á. ìá»α¿¼Ñα, Ñß½¿ ¿¼ÑÑΓß∩
»«ñ»α«úαá¼¼á, ¬«Γ«αá∩ «Γ«íαáªáÑΓ ¡á φ¬αá¡Ñ ß»¿ß«¬ ñ½¿¡«⌐ «Γ 1 ñ«
20 φ½Ñ¼Ñ¡Γ«ó, ß½ÑñπÑΓ πíÑñ¿Γ∞ß∩ ó »αáó¿½∞¡«ßΓ¿ ÑÑ αáí«Γδ ¬á¬ »α¿
«ñ¡«¼ φ½Ñ¼Ñ¡ΓÑ ó ß»¿ß¬Ñ, Γᬠ¿ »α¿ ñóáñµáΓ¿. ¥Γá »α«óÑα¬á ¼«ªÑΓ
óδ∩ó¿Γ∞ «ñ¡π ¿º «Φ¿í«¬ Γ¿»á "ßΓ«½íδ ó ¿ºú«α«ñ¿" (¡á «ñ¿¡ í«½∞ΦÑ
¿½¿ ¡á «ñ¿¡ ¼Ñ¡∞ΦÑ), «»¿ßá¡¡δσ óδΦÑ.
ÄΦ¿í«τ¡δÑ óσ«ñ¡δÑ ñá¡¡δÑ --------------------------------------
Å«ß½Ñ Γ«ú« ¬á¬ óδ πíÑñ¿ΓÑß∞, τΓ« »«ñ»α«úαá¼¼á »αáó¿½∞¡«
αáí«ΓáÑΓ ó« óßѼ ñ¿á»áº«¡Ñ ñ«»πßΓ¿¼δσ óσ«ñ¡δσ ñá¡¡δσ, óδ ñ«½ª¡δ
»α«óÑα¿Γ∞ ÑÑ αáí«Γ«ß»«ß«í¡«ßΓ∞ »α¿ óó«ñÑ ¡ÑóÑα¡δσ ñá¡¡δσ.
ìÑ«íσ«ñ¿¼« πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ« ¡ÑóÑα¡δÑ óσ«ñ¡δÑ ñá¡¡δÑ
«ΓóÑαúáεΓß∩ »α«úαá¼¼«⌐, ñáªÑ Ñß½¿ «¡¿ «τÑ¡∞ ¼á½« «Γ½¿τáεΓß∩ «Γ
ñ«ßΓ«óÑα¡δσ ñá¡¡δσ. ìá»α¿¼Ñα, »αÑñδñπΘá∩ »«ñ»α«úαá¼¼á, ¬«Γ«αá∩
ó«ß»α¿¡¿¼áÑΓ º¡áτÑ¡¿∩ «Γ 1 ñ« 20, ñ«½ª¡á «ΓóÑαúáΓ∞ º¡áτÑ¡¿∩ 0 ¿
21.
ÅπßΓδÑ óσ«ñ¡δÑ ñá¡¡δÑ -----------------------------------------
¥Γ«Γ ß½πτá⌐ τáßΓ« ¿ú¡«α¿απÑΓß∩ »α«úαá¼¼¿ßΓἿ ¬á¬ »α¿
ΓÑßΓ¿α«óá¡¿¿, Γᬠ¿ »α¿ αáºαáí«Γ¬Ñ »α«úαá¼¼. àß½¿ ó »α«úαá¼¼Ñ
»αÑñπß¼«ΓαÑ¡« αáºπ¼¡«Ñ »«óÑñÑ¡¿Ñ »α¿ «ΓßπΓßΓó¿¿ τáßΓ¿ óσ«ñ¡δσ
ñá¡¡δσ (Γ« ÑßΓ∞ αáí«Γá »« π¼«½τá¡¿ε), φΓ« ßπΘÑßΓóÑ¡¡« «í½ÑúτáÑΓ
ÑÑ ¿ß»«½∞º«óá¡¿Ñ.
ÄΓ½áñ¬á ¬á¬ ßΓáñ¿∩ αáºαáí«Γ¬¿ »α«úαá¼¼δ
-----------------------------------------------------------------
è«úñá óδ Γ«½∞¬« ¡áτ¿¡áÑΓÑ αáºαáíáΓδóáΓ∞ »α«úαá¼¼π, óδ ¼«ªÑΓÑ
ºá»½á¡¿α«óáΓ∞ ßΓáñ¿ε «Γ½áñ¬¿. Äíδτ¡« »α«µÑßß αáºαáí«Γ¬¿ »α«úαá¼¼
ó½¬ετáÑΓ Γá¬πε ßΓáñ¿ε, ¡á ¬«Γ«α«⌐ αẽ¿τ¡δÑ ÑÑ τáßΓ¿ »α«óÑα∩εΓ,
∩ó½∩εΓß∩ ½¿ ñ«»πßΓ¿¼δ¼¿ óσ«ñ¡δÑ ñá¡¡δÑ ¿ ∩ó½∩εΓß∩ ½¿ »α¿Ñ¼½Ñ¼δ¼¿
óδσ«ñ¡δÑ ñá¡¡δÑ.
àß½¿ óδ óδ»«½¡¿ΓÑ í«½∞Φ«Ñ ¬«½¿τÑßΓó« »α«óÑ᫬, óδ ß¼«ªÑΓÑ
»«½πτ¿Γ∞ «τÑ¡∞ ¡áñѪ¡πε »α«úαá¼¼π, ¬«Γ«αá∩ íπñÑΓ ß««íΘáΓ∞ óá¼ «
󫺡¿¬¡«óÑ¡¿¿ «Φ¿í¬¿ ¿ »α«ñ«½ªáΓ∞ αáí«ΓáΓ∞ »«ß½Ñ óδ»«½¡Ñ¡¿∩
¡Ñ¬«Γ«α«⌐ αáºπ¼¡«⌐ αáí«Γδ »« ó«ßßΓá¡«ó½Ñ¡¿ε. Åα¿ φΓ«¼ óδ ¼«ªÑΓÑ
ßΓ«½¬¡πΓ∞ß∩ ß πóѽ¿τÑ¡¿Ñ¼ αẼÑαá »α«úαá¼¼δ ¿ ºá¼Ññ½Ñ¡¿Ñ¼ ÑÑ
αáí«Γδ. Æá¬¿Ñ »α«úαá¼¼δ «τÑ¡∞ ½Ñú¬« «Γ½áª¿óáΓ∞, »«ß¬«½∞¬π ßἿ ÑÑ
»«ñ»α«úαá¼¼δ ¿¡Σ«α¼¿απεΓ óáß « ¡ÑóÑα¡δσ óσ«ñ¡δσ ñá¡¡δσ, »αѪñÑ
τѼ «¡¿ ó맮óπΓ «Φ¿í¬π ó αáí«ΓÑ »α«úαá¼¼δ.
¡« Γá¬ªÑ αáºαáí«ΓáΓ∞ »α«úαá¼¼π, »«ñ»α«úαá¼¼δ ¬«Γ«α«⌐
íπñπΓ óδ»«½¡∩Γ∞ »α«óÑα¬π ñ«ßΓ«óÑα¡«ßΓ¿ óσ«ñ¡δσ ¿ óδσ«ñ¡δσ ñá¡¡δσ
ó ¡Ñí«½∞Φ«¼ «íΩÑ¼Ñ ¿½¿ ß«óßѼ ¡Ñ óδ»«½¡∩Γ∞ ÑÑ. Æá¬á∩ »α«úαá¼¼á
íπñÑΓ í«½ÑÑ ¬«¼»á¬Γ¡á ¿ íπñÑΓ αáí«ΓáΓ∞ íδßΓαÑÑ, «ñ¡á¬« ¡ÑóÑα¡δÑ
óσ«ñ¡δÑ ñá¡¡δÑ ¿½¿ ¡Ñí«½∞Φá∩ «Φ¿í¬á ¼«úπΓ »α¿óÑßΓ¿ ¬ ßÑα∞Ѻ¡«¼π
ßí«ε. Æá¬¿Ñ »α«úαá¼¼δ ¼«úπΓ íδΓ∞ ¡á¿í«½ÑÑ Γαπñ¡δ¼¿ ñ½∩ «Γ½áñ¬¿,
»«ß¬«½∞¬π ¡Ñí«½∞Φá∩ «Φ¿í¬á ¼«ªÑΓ »α«∩ó½∩Γ∞ß∩ º¡áτ¿Γѽ∞¡« »«ºªÑ ÑÑ
󫺡¿¬¡«óÑ¡¿∩. é Γᬿσ ß½πτá∩σ íδóáÑΓ «τÑ¡∞ ß½«ª¡« ¡á⌐Γ¿ Γ«τ¬π, ó
¬«Γ«α«⌐ »α«¿º«Φ½á «Φ¿í¬á.
é í«½∞Φ¿¡ßΓóÑ »α«úαá¼¼ ¿ß»«½∞ºπÑΓß∩ ß«τÑΓá¡¿Ñ φΓ¿σ ñóπσ
»«ñσ«ñ«ó. èᬠ»αá󿽫, »α«úαá¼¼¿ßΓδ í«½ÑÑ »«ñ«ºα¿Γѽ∞¡« «Γ¡«ß∩Γß∩
¬ óσ«ñ¡δ¼ ñá¡¡δ¼, »«½πτáÑ¼δ¼ ¿º ó¡ÑΦ¡¿σ ¿ßΓ«τ¡¿¬«ó («Γ
»«½∞º«óáΓѽ∩ ¿½¿ ¿º ñ¿ß¬«ó«ú« Σá⌐½á), τѼ ¬ ñá¡¡δ¼, »ÑαÑñáóáѼδ¼
¿º «ñ¡«⌐ »«ñ»α«úαá¼¼δ ó ñαπúπε.
Åα¿¼Ñα ßÑá¡ßá «Γ½áñ¬¿
----------------------------------------------------------------
é φΓ«¼ »α¿¼ÑαÑ «Γ½áñ¬¿ ¿ß»«½∞ºπεΓß∩ ¡Ñ¬«Γ«αδÑ ß»«ß«íδ,
¬«Γ«αδÑ í뫨 αáßß¼«ΓαÑ¡δ ó »αÑñΦÑßΓóπεΘ¿σ αáºñѽáσ. Åα«úαá¼¼á,
¬«Γ«απε ¼δ íπñѼ «Γ½áª¿óáΓ∞ »αÑñßΓáó½∩ÑΓ ß«í«⌐ óÑαß¿ε
ñѼ«¡ßΓαᵿ«¡¡«⌐ »α«úαá¼¼δ, αáßß¼«ΓαÑ¡¡«⌐ ó ú½áóÑ 3 (TCDEMO.C ¿½¿
TPDEMO.PAS) ß Γ«⌐ ½¿Φ∞ αạ¿µÑ⌐, τΓ« «¡á ß«ñÑαª¿Γ ¡Ñ߬«½∞¬«
π¼δΦ½Ñ¡¡« óßΓáó½Ñ¡¡δσ «Φ¿í«¬.
ôíÑñ¿ΓÑß∞ ó Γ«¼, τΓ« ó ΓѬπΘÑ⌐ ñ¿αÑ¬Γ«α¿¿ ¿¼ÑεΓß∩ ñóá Σá⌐½á,
¡Ñ«íσ«ñ¿¼δÑ ñ½∩ óδ»«½¡Ñ¡¿∩ ñѼ«¡ßΓαᵿ«¡¡«⌐ «Γ½áñ¬¿. àß½¿ óδ
ß«í¿αáÑΓÑß∞ «Γ½áª¿óáΓ∞ »α«úαá¼¼π ¡á ∩ºδ¬Ñ Turbo Pascal, óá¼
»«ΓαÑíπεΓß∩ Σá⌐½δ TPDEMOB.PAS ¿ TPDEMOB.EXE. àß½¿ óδ
»α«úαá¼¼¿απÑΓÑ ¡á æ¿, óá¼ »«¡áñ«í∩Γß∩ Σá⌐½δ TCDEMOB.C ¿
CDEMOB.EXE (üπ¬óá "B" ó ¿¼Ñ¡áσ »α«úαá¼¼ «º¡áτóáÑΓ "buggy", Γ.Ñ.
"ß «Φ¿í¬«⌐".
æÑá¡ß «Γ½áñ¬¿ ß¿-»α«úαá¼¼δ
-----------------------------------------------------------------
é φΓ«¼ αáºñÑ½Ñ ó ¬áτÑßΓóÑ »α¿¼Ñαá ¿ß»«½∞ºπÑΓß∩ »α«úαá¼¼á ¡á
∩ºδ¬Ñ Turbo C. àß½¿ óδ »α«úαá¼¼¿απÑΓÑ ¡á Åá߬á½Ñ, «íαáΓ¿ΓÑß∞ ¬
αáºñѽπ , ó ¬«Γ«α«¼ «»¿ßá¡ ßÑá¡ß «Γ½áñ¬¿ »α«úαá¼¼δ ¡á ∩ºδ¬Ñ Turbo
Pascal.
Å«¿ß¬ «Φ¿í«¬ -------------------------------------------------
ÅαѪñÑ τѼ ¡áτ¿¡áΓ∞ ßÑá¡ß «Γ½áñ¬¿, ñáóá⌐ΓÑ ºá»πßΓ¿¼
ñѼ«¡ßΓαᵿᡡπε »α«úαá¼¼π, ß«ñÑαªáΘπε «Φ¿í¬¿, ¿ πíÑñ¿¼ß∩ ó Γ«¼,
τΓ« «¡á αáí«ΓáÑΓ ¡Ñ»αáó¿½∞¡«. ùΓ«íδ ºá»πßΓ¿Γ∞ φΓπ »α«úαá¼¼π,
óóÑñ¿ΓÑ ß ¬½áó¿áΓπαδ:
TCDEMOB
Åα«úαá¼¼á »«»α«ß¿Γ óáß óóÑßΓ¿ ßΓ᫬¿ ΓѬßΓá. éóÑñ¿ΓÑ
ß½ÑñπεΘ¿Ñ ñóÑ ßΓ᫬¿:
one two three
four five six
éó«ñ ñá¡¡δσ ºá¬á¡τ¿óáÑΓß∩ »«ß½Ññ¡Ñ⌐ »πßΓ«⌐ ßΓ᫬«⌐. Å«ß½Ñ
φΓ«ú« »α«úαá¼¼á TCDEMOB αáß»ÑτáΓáÑΓ ¡á φ¬αá¡Ñ αѺπ½∞ΓáΓδ á¡á½¿ºá
óóÑñÑ¡¡«ú« ΓѬßΓá:
Arguments:
Enter a line (empty line to end): one two three
(éóÑñ¿ΓÑ ßΓ᫬π (»πßΓπε ßΓ᫬π ñ½∩ «¬«¡τá¡¿∩): )
Enter a line (empty line to end): four five six
Enter a line (empty line to end):
Total number of letters = 7
(ÄíΘÑÑ ¬«½¿τÑßΓó« íπ¬ó)
Total number of lines = 6
(ÄíΘÑÑ ¬«½¿τÑßΓó« ßΓ᫬)
Total word count = 2
(ÄíΘÑÑ ¬«½¿τÑßΓó« ß½«ó)
Average number of words per line = 0.3333333
(æαÑñ¡ÑÑ ¬«½¿τÑßΓó« ß½«ó ó ßΓ᫬Ñ)
'E' occurs 1 times, 0 times at start of a word
('E' óßΓαÑΓ¿½áß∞ 1 αáº, 0 αẠó ¡áτá½Ñ ß½«óá)
'F' occurs 1 times, 1 times at start of a word
'N' occurs 1 times, 0 times at start of a word
'O' occurs 2 times, 1 times at start of a word
'R' occurs 1 times, 0 times at start of a word
'U' occurs 1 times, 0 times at start of a word
There is 1 word 3 characters long
(ê¼ÑÑΓß∩ 1 ß½«ó« ñ½¿¡«⌐ ó Γα¿ ß¿¼ó«½á)
There is 1 word 4 characters long
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á ¡ÑóÑα¡«Ñ «íΘÑÑ ¬«½¿τÑßΓó« íπ¬ó, ßΓ᫬ ¿
ß½«ó. èα«¼Ñ Γ«ú«, Γáí½¿µδ τáßΓ«Γδ π»«ΓαÑíѽѡ¿∩ íπ¬ó ¿ ß½«ó,
¬áªÑΓß∩, »«ñßτ¿ΓáΓδ ¡á «ß¡«óÑ ¡ÑóÑα¡δσ ñá¡¡δσ «í «íΘѼ ¬«½¿τÑßΓóÑ
íπ¬ó ¿ ß½«ó. ¥Γ« «ñ¡á ¿º ßá¼δσ Γ¿»¿τ¡δσ ß¿Γπᵿ⌐ - ¡Ñ»αáó¿½∞¡á∩
αáí«Γá »α«úαá¼¼δ »α«∩ó½∩ÑΓß∩ ßαáºπ ó ¡Ñ߬«½∞¬¿σ ¼ÑßΓáσ. ¥Γ« τáßΓ«
ß½πτáÑΓß∩ ¡á αá¡¡¿σ ßΓáñ¿∩σ «Γ½áñ¬¿ »α«úαá¼¼δ.
Éáºαáí«Γ¬á »½á¡á ñÑ⌐ßΓó¿⌐ -------------------------------------
ÅαѪñÑ óßÑú« óδ ñ«½ª¡δ αÑΦ¿Γ∞, ¬á¬πε «Φ¿í¬π áΓᬫóáΓ∞
»Ñαó«⌐. çñÑß∞ ¼«ª¡« ó«ß»«½∞º«óáΓ∞ß∩ σ«α«Φ« »α«óÑαÑ¡¡δ¼ »αá󿽫¼,
¬«Γ«α«Ñ ú½áß¿Γ, τΓ« ¡áτ¿¡áΓ∞ ¡áñ« ß Γ«⌐ «Φ¿í¬¿, ¬«Γ«αá∩
»αÑñ»«½«ª¿Γѽ∞¡« 󫺡¿¬áÑΓ »Ñαó«⌐. é ñá¡¡«⌐ »α«úαá¼¼Ñ ¬áªñá∩
óóÑñÑ¡¡á∩ ßΓ᫬á ß«ßΓ«∩½á ¿º ΓαÑσ ß½«ó, ºáΓѼ «¡á íδ½á
»α«á¡á½¿º¿α«óá¡á ¿ »«ß½Ñ Γ«ú«, ¬á¬ í뫨 óóÑñÑ¡δ óßÑ ßΓ᫬¿,
»α«úαá¼¼á óδóÑ½á ¡á φ¬αá¡ Γáí½¿µδ. ū߬«½∞¬π ¬«½¿τÑßΓó« íπ¬ó ¿
¬«½¿τÑßΓó« ß½«ó π¬áºá¡δ ¡ÑóÑα¡«, φΓ« σ«α«Φ¿⌐ »α¿º¡á¬ Γ«ú«, τΓ«
«Φ¿í¬á »α«¿º«Φ½á ¡á ¡áτá½∞¡«⌐ ßΓáñ¿¿ αáºí¿Ñ¡¿∩ ¿ αáßτÑΓá.
ÆÑ»Ñα∞, »«ß½Ñ Γ«ú«, ¬á¬ ¼δ ¡Ñ¼¡«ú« »«αẼδΦ½∩½¿ ¡áñ
»α«í½Ñ¼«⌐ ¿ αáºαáí«Γ὿ »α¿¼Ñα¡δ⌐ »½á¡ ñÑ⌐ßΓó¿⌐, »«αá ¡áτ¿¡áΓ∞
«Γ½áñ¬π »α«úαá¼¼δ. ÆÑ»Ñα∞ ¡áΦá ºáñáτá ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ
»α«óÑα¿Γ∞ »«ñ»α«úαá¼¼π makeintwords ¿ »«ß¼«ΓαÑΓ∞, »αáó¿½∞¡« ½¿
«¡á αáºí¿óáÑΓ ßΓ᫬π ¡á ß½«óá ß ¡π½Ñóδ¼ «¬«¡τ᡿Ѽ, á ºáΓѼ
»«ß¼«ΓαÑΓ∞, »αáó¿½∞¡« ½¿ »«ñ»α«úαá¼¼á analyzewords óδτ¿ß½∩ÑΓ
¬«½¿τÑßΓó« ß½«ó ó á¡á½¿º¿απѼ«⌐ ßΓ᫬Ñ.
çá»π߬ «Γ½áñτ¿¬á Turbo Debugger -------------------------------
ä½∩ Γ«ú« τΓ«íδ ¡áτáΓ∞ ßÑá¡ß «Γ½áñ¬¿ ñѼ«¡ßΓαᵿ«¡¡«⌐
»α«úαá¼¼δ ¡á æ¿, óóÑñ¿ΓÑ ß ¬½áó¿áΓπαδ:
TD TCDEMOB
Turbo Debugger ºáúαπº¿Γ ñѼ«¡ßΓαᵿ«¡¡πε »α«úαá¼¼π,
ß«ñÑαªáΘπε «Φ¿í¬¿, ¿ «Γ«íαáº¿Γ ßó«⌐ ¿ßσ«ñ¡δ⌐ φ¬αá¡. àß½¿ óδ
ºáσ«Γ¿ΓÑ ºá¬«¡τ¿Γ∞ πτÑí¡δ⌐ ßÑá¡ß ¿ óÑα¡πΓ∞ß∩ ó DOS, óδ ¼«ªÑΓÑ
ßñѽáΓ∞ φΓ« ó ½εí«⌐ ¼«¼Ñ¡Γ, ¡áªáó ¬½áó¿Φ¿ Alt-X. àß½¿ óδ τΓ«-½¿í«
íѺ¡áñѪ¡« ¿ß»«αΓ¿ΓÑ, óδ ß¼«ªÑΓÑ ó ½εí«⌐ ¼«¼Ñ¡Γ »ÑαѺáúαπº¿Γ∞
ñѼ«¡ßΓαᵿ«¡¡πε »α«úαá¼¼π ¿ ¡áτáΓ∞ óßÑ ß¡áτá½á, ¡áªáó ¬½áó¿Φ¿
Ctrl-F2. (çá¼ÑΓ¿¼, τΓ« »α¿ φΓ«¼ ¡Ñ πñá½∩εΓß∩ Γ«τ¬¿ «ßΓá¡«óá ¿
óδαáªÑ¡¿∩, ºá¡ÑßÑ¡¡δÑ ó «¬¡« ߽Ѫѡ¿∩.)
ū߬«½∞¬π, »Ñαó«Ñ, τΓ« ¼δ σ«Γѽ¿ ßñѽáΓ∞, φΓ« »α«óÑα¿Γ∞,
»αáó¿½∞¡« ½¿ αáí«ΓáÑΓ »«ñ»α«úαá¼¼á makeintwords, óδ»«½¡¿¼
»α«úαá¼¼π ñ« φΓ«⌐ »«ñ»α«úαá¼¼δ ¿ »α«óÑα¿¼ ÑÑ αáí«Γπ. ¥Γ« ¼«ª¡«
ßñѽáΓ∞ ñóπ¼∩ ß»«ß«íἿ: óδ»«½¡∩Γ∞ »«ñ»α«úαá¼¼π makeintwords ó
»«Φáú«ó«¼ αѪ¿¼Ñ, ¬«¡Γα«½¿απ∩ »α¿ φΓ«¼ »αáó¿½∞¡«ßΓ∞ ÑÑ αáí«Γδ,
¿½¿ «ßΓá¡«ó¿Γ∞ »α«úαá¼¼π »«ß½Ñ Γ«ú«, ¬á¬ íπñÑΓ óδ»«½¡Ñ¡á
»«ñ»α«úαá¼¼á makeintwords ¿ »α«óÑα¿Γ∞, ¡á߬«½∞¬« »αáó¿½∞¡« «¡á
ßαáí«Γá½á.
ū߬«½∞¬π »«ñ»α«úαá¼¼á makeintwords óδ»«½¡∩ÑΓ ∩ß¡«
«»αÑñѽѡ¡πε ºáñáτπ, ¼«ª¡« ½Ñú¬« «»αÑñѽ¿Γ∞, »αáó¿½∞¡« ½¿ «¡á
αáí«ΓáÑΓ, »α«ßΓ« »α«óÑα¿ó ß«ñÑন¼«Ñ ÑÑ óδσ«ñ¡«ú« íπΣÑαá. Å«φΓ«¼π
ñáóá⌐ΓÑ óδíÑαѼ óΓ«α«⌐ ß»«ß«í. ÅÑαѼÑßΓ¿ΓÑ óδñѽ∩εΘ¿⌐ ¬παß«α ¬
ßΓα«¬Ñ 42 ¿ ¡áª¼¿ΓÑ ¬½áó¿Φπ F4, τΓ«íδ óδ»«½¡¿Γ∞ »α«úαá¼¼π ñ« φΓ«⌐
ßΓ᫬¿. Å«∩ó¿Γß∩ φ¬αá¡ óδó«ñá »α«úαá¼¼δ, ¿ óδ ñ«½ª¡δ óóÑßΓ¿ ß
¬½áó¿áΓπαδ:
one two three
á ºáΓѼ ¡áªáΓ∞ ¬½áó¿Φπ Enter.
Åα«óÑα¬á º¡áτÑ¡¿⌐ »ÑαѼѡ¡δσ ----------------------------------
ÆÑ»Ñα∞ »α«úαá¼¼á «ßΓá¡«ó½Ñ¡á ¡á ßΓ᫬Ñ, ¬«Γ«αá∩ ß½ÑñπÑΓ ºá
óδº«ó«¼ »«ñ»α«úαá¼¼δ makeintwords. äáóá⌐ΓÑ »α«óÑα¿¼ ß«ñÑন¼«Ñ
¼áßß¿óá buffer, ¿ πíÑñ¿¼ß∩ ó Γ«¼, τΓ« «¡ ß«ñÑαª¿Γ »αáó¿½∞¡δÑ
º¡áτÑ¡¿∩. ÅÑαѼÑßΓ¿ΓÑ ¬παß«α ¡á «ñ¡π ßΓ᫬π óóÑασ, »«ñóÑñ¿ΓÑ Ñú«
¬ ß½«óπ buffer ¿ ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F10 I (¬«¼á¡ñá Inspector),
τΓ«íδ «Γ¬αδΓ∞ «¬¡« »α«óÑન ¿ »«ß¼«ΓαÑΓ∞ ó ¡Ñ¼ ß«ñÑন¼«Ñ ¼áßß¿óá
buffer. ä½∩ »α«ß¼«Γαá ó «¬¡Ñ φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá ¿ß»«½∞ºπ⌐ΓÑ
¬½áó¿Φ¿ »ÑαѼÑΘÑ¡¿∩ ¬παß«αá. ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« makeintwords
ñÑ⌐ßΓó¿Γѽ∞¡« »«¼ÑΘáÑΓ «ñ¿¡ ¡π½Ñó«⌐ ß¿¼ó«½ (()) ó ¬«¡µÑ ¬áªñ«ú«
«í¡áαπªÑ¡¡«ú« ß½«óá. ¥Γ« «º¡áτáÑΓ, τΓ« ΓÑ»Ñα∞ ß½ÑñπÑΓ óδ»«½¡¿Γ∞
ÑΘÑ «ñ¿¡ ¡Ñí«½∞Φ«⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ¿ πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ«
»«ñ»α«úαá¼¼á analyzewords αáí«ΓáÑΓ »αáó¿½∞¡«. æ¡áτá½á πñ὿ΓÑ
«¬¡« »α«óÑન, ¡áªáó ¬½áó¿Φπ Esc. çáΓѼ ñóáªñδ ¡áª¼¿ΓÑ ¬½áó¿Φπ
F7, τΓ«íδ óδ»«½¡¿Γ∞ »α«úαá¼¼π ñ« ¡áτá½á »«ñ»α«úαá¼¼δ
analyzewords.
Æ«τ¬¿ «ßΓá¡«óá ------------------------------------------------
ôíÑñ¿ΓÑß∞ ó Γ«¼, τΓ« analyzewords íδ½á óδºóá¡á ß »αáó¿½∞¡δ¼
π¬áºáΓѽѼ ¡á íπΣÑα, »«ñóÑñ∩ ¬παß«α ¬ ß½«óπ bufp ¿ ¡áªáó ¬½áó¿Φ¿
Alt-F10 I. éδ πó¿ñ¿ΓÑ, τΓ« bufp ñÑ⌐ßΓó¿Γѽ∞¡« π¬áºδóáÑΓ ¡á ßΓ᫬π
ß ¡π½Ñóδ¼ «¬«¡τ᡿Ѽ 'one'. ôñ὿ΓÑ «¬¡« »α«óÑન, ¡áªáó ¬½áó¿Φπ
Esc. ū߬«½∞¬π ¼δ »αÑñ»«½áúáѼ, τΓ« «Φ¿í¬á 󫺡¿¬áÑΓ »α¿ »«ñßτÑΓÑ
¬«½¿τÑßΓóá ß¿¼ó«½«ó ¿ ß½«ó, ñáóá⌐ΓÑ πßΓá¡«ó¿¼ Γ«τ¬π «ßΓá¡«óá ó
ΓÑσ ¼ÑßΓáσ, úñÑ »α«¿ºó«ñ¿Γß∩ »«ñßτÑΓ ß¿¼ó«½«ó ¿ ß½«ó.
1. ÅÑαѼÑßΓ¿ΓÑ ¬παß«α ¡á ßΓ᫬π 93 ¿ ¡áª¼¿ΓÑ ¬½áó¿Φπ F2,
τΓ«íδ πßΓá¡«ó¿Γ∞ Γ«τ¬π «ßΓá¡«óá.
2. ÅÑαѼÑßΓ¿ΓÑ ¬παß«α ¡á ßΓ᫬π 97 ¿ πßΓá¡«ó¿ΓÑ ÑΘÑ «ñ¡π
Γ«τ¬π «ßΓá¡«óá.
3. ê ¡á¬«¡Ñµ, πßΓá¡«ó¿ΓÑ Γ«τ¬π «ßΓá¡«óá ¡á ßΓα«¬Ñ 99, Γá¬
τΓ«íδ óδ ß¼«ú½¿ »α«óÑα¿Γ∞, ¬á¬«Ñ ¬«½¿τÑßΓó« ß¿¼ó«½«ó íπñÑΓ
ó«ºóαáΘáΓ∞ ñá¡¡á∩ Σπ¡¬µ¿∩.
ôßΓá¡«ó¬á ¡Ñ߬«½∞¬¿σ Γ«τѬ «ßΓá¡«óá ∩ó½∩ÑΓß∩ Γ¿»¿τ¡δ¼
»α¿Ñ¼«¼, ¬«Γ«αδ⌐ »«ºó«½∩ÑΓ «»αÑñѽ¿Γ∞, óδ»«½¡∩ÑΓß∩ ½¿ »α«úαá¼¼á ó
»αáó¿½∞¡«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, ¿ »α«óÑα∩Γ∞ º¡áτÑ¡¿∩ ó᪡δσ
φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ »α¿ ¬áªñ«⌐ «ßΓá¡«ó¬Ñ αáí«Γδ »α«úαá¼¼δ ó Γ«τ¬Ñ
«ßΓá¡«óá.
Ĭ¡« ߽Ѫѡ¿∩ -------------------------------------------------
çá»πßΓ¿ΓÑ »α«úαá¼¼π, ¡áªáó ¬½áó¿Φπ F9. Éáí«Γá »α«úαá¼¼δ
«ßΓá¡«ó¿Γß∩, ¬«úñá íπñÑΓ ñ«ßΓ¿ú¡πΓá Γ«τ¬á «ßΓá¡«óá ó ßΓ᫬Ñ
93.ÆÑ»Ñα∞ ¼δ σ«Γ¿¼ »«ß¼«ΓαÑΓ∞ ¡á º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ charcount.
ū߬«½∞¬π ªÑ½áΓѽ∞¡« »α«óÑα∩Γ∞ ÑÑ º¡áτÑ¡¿∩ ¬áªñδ⌐ αáº, ¬«úñá
íπñÑΓ ñ«ßΓ¿ú¡πΓá Γ«τ¬á «ßΓá¡«óá, φΓ« ¿ñÑá½∞¡δ⌐ ß½πτá⌐, τΓ«íδ
¿ß»«½∞º«óáΓ∞ ¬«¼á¡ñπ Watch ¿ ºá¡ÑßΓ¿ »ÑαѼѡ¡πε ó «¬¡« ߽Ѫѡ¿∩.
Å«ñóÑñ¿ΓÑ ¬παß«α ¬ ß½«óπ charcount ¿ ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F10 W.
ÆÑ»Ñα∞ ó «¬¡Ñ ߽Ѫѡ¿∩, αáß»«½«ªÑ¡¡«¼ ó ¡¿ª¡Ñ⌐ τáßΓ¿ φ¬αá¡á,
«Γ«íαáªáÑΓß∩ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ ñá¡¡«⌐ »ÑαѼѡ¡«⌐, αáó¡«Ñ 0. ä½∩
Γ«ú« τΓ«íδ πíÑñ¿Γ∞ß∩, τΓ« ¬«½¿τÑßΓó« ß¿¼ó«½«ó óδτ¿ß½∩ÑΓß∩
»αáó¿½∞¡«, óδ»«½¡¿¼ «ñ¡π ßΓ᫬π ¿ßσ«ñ¡«ú« ΓѬßΓá, ¡áªáó ¬½áó¿Φπ
F7. Ĭ¡« ߽Ѫѡ¿∩ »«¬áªÑΓ, τΓ« ΓÑ»Ñα∞ º¡áτÑ¡¿Ñ charcount
ñÑ⌐ßΓó¿Γѽ∞¡« αáó¡« 1.
ü½«¬ ñ¿á½«úá Evaluate/Modify ----------------------------------
æ¡«óá ºá»πßΓ¿ΓÑ »α«úαá¼¼π, ¡áªáó ¬½áó¿Φπ F9. éδ «»∩Γ∞
ó«ºóαáΘáÑΓÑß∞ ¬ ßΓα«¬Ñ 93, ñ«íáó¿ó ÑΘÑ «ñ¿¡ ß¿¼ó«½. ì᪼¿ΓÑ
¬½áó¿Φπ F9 ÑΘÑ ñóá αáºá, τΓ«íδ óóÑßΓ¿ »«ß½Ññ¡εε íπ¬óπ ó ß½«óÑ ¿
¡π½Ñó«Ñ «¬«¡τá¡¿Ñ. ÆÑ»Ñα∞ charcount »αáó¿½∞¡« ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ
3, á ¼áßß¿ó wordcounts ú«Γ«ó «í¡«ó¿Γ∞ß∩, τΓ«íδ ß«ßτ¿ΓáΓ∞ ß½«ó«.
Å«¬á óßÑ »αѬαáß¡«. ì᪼¿ΓÑ ¬½áó¿Φπ F9, τΓ«íδ ¡áτáΓ∞ «íαáí«Γ¬π
ß½ÑñπεΘÑú« ß½«óá ó íπΣÑαÑ. Çúá! ùΓ«-Γ« ¡Ñ Γá¬.
éδ «ª¿ñ὿, τΓ« »α«úαá¼¼á ß¡«óá «ßΓá¡«ó¿Γß∩ ¡á ßΓα«¬Ñ 93
,«ñ¡á¬« φΓ«ú« ¡Ñ »α«¿º«Φ½«. Ä¡á óδ»«½¡¿½áß∞ ñ« «»ÑαáΓ«αá, ¬«Γ«αδ⌐
óδ»«½¡∩ÑΓ ó«ºóαáΓ ¿º Σπ¡¬µ¿¿. ìá ßΓ᫬π 99 ¼«ª¡« »«»áßΓ∞ Γ«½∞¬« ó
Γ«¼ ß½πτáÑ, Ñß½¿ πß½«ó¿Ñ, »α«óÑα∩Ѽ«Ñ ó µ¿¬½Ñ while, ¬«Γ«αδ⌐
¡áτ¿¡áÑΓß∩ ¡á ßΓα«¬Ñ 83, í«½∞ΦÑ ¡Ñ óδ»«½¡∩ÑΓß∩. Æ« ÑßΓ∞ óδαáªÑ¡¿Ñ
*bufp !=0 ñ«½ª¡« íδΓ∞ ½«ª¡δ¼.
ùΓ«íδ »α«óÑα¿Γ∞ φΓ«, óÑα¡¿ΓÑß∞ «íαáΓ¡« ¬ ßΓα«¬Ñ 83 ¿
»«¼ÑΓ∞ΓÑ óßÑ óδαáªÑ¡¿Ñ *bufp !=0, »«¼ÑßΓ¿ó ¬παß«α ¡á Ñú« »Ñαóδ⌐
ß¿¼ó«½, ¡áªáó ¬½áó¿Φπ Ins ¿ »ÑαѼÑßΓ¿ó ¬παß«α ¬ Ñú« »«ß½Ññ¡Ñ¼π
ß¿¼ó«½π. ÆÑ»Ñα∞ óδτ¿ß½¿ΓÑ º¡áτÑ¡¿Ñ φΓ«ú« óδαáªÑ¡¿∩, «Γ¬αδó í½«¬
ñ¿á½«úá Data|Evaluate Modify ¿ ¡áªáó Enter, τΓ«íδ »«ñΓóÑαñ¿Γ∞
»«¼ÑτÑ¡¡«Ñ óδαáªÑ¡¿Ñ. àú« º¡áτÑ¡¿Ñ ñÑ⌐ßΓó¿Γѽ∞¡« αáó¡« 0. äóáªñδ
¡áª¼¿ΓÑ ¬½áó¿Φπ Esc, τΓ«íδ óÑα¡πΓ∞ß∩ ó «¬¡« ¼«ñπ½∩.
¥óਪá! -------------------------------------------------------
ÆÑ»Ñα∞ »α¿Φ½« óαѼ∩ ¿ß»αáó½∩Γ∞ «Φ¿í¬π. Åα¿τ¿¡á, »« ¬«Γ«α«⌐
bufp π¬áºδóáÑΓ ¡á 0, ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ« ó¡πΓαÑ¡¡¿⌐ µ¿¬½
while, ¡áτ¿¡áεΘ¿⌐ß∩ ¡á ßΓα«¬Ñ 86, «ßΓáó½∩ÑΓ φëà π¬áºáΓѽ∞ ó
¬«¡µÑ ß½«óá. ùΓ«íδ »ÑαÑ⌐Γ¿ ¬ ß½ÑñπεΘѼπ ß½«óπ, ¡Ñ«íσ«ñ¿¼«
¡áαáßΓ¿Γ∞ º¡áτÑ¡¿Ñ bufp »«ß½Ñ Γ«ú«, ¬á¬ «¡ íπñÑΓ π¬áºδóáΓ∞ ¡á
¡π½Ñó«Ñ «¬«¡τá¡¿Ñ »αÑñδñπΘÑú« ß½«óá. ùΓ«íδ φΓ« ßñѽáΓ∞, ¡áñ«
óßΓáó¿Γ∞ »ÑαÑñ ßΓ᫬«⌐ 96 «»ÑαáΓ«α bufp++. ä½∩ φΓ«ú« ¼«ª¡« í佫
íδ »ÑαѬ«¼»¿½¿α«óáΓ∞ »α«úαá¼¼π ß óßΓáó½Ñ¡¡δ¼ φΓ¿¼ «»ÑαáΓ«α«¼,
«ñ¡á¬« Turbo Debugger »«ºó«½∩ÑΓ óßΓáó½∩Γ∞ ó »α«úαá¼¼π óδαáªÑ¡¿∩ ß
»«¼«Θ∞ε ߻ѵ¿á½∞¡δσ Γ«τѬ «ßΓá¡«óá.
ä½∩ φΓ«ú« ß¡áτá½á »ÑαѺáúαπº¿ΓÑ »α«úαá¼¼π, ¡áªáó ¬½áó¿Φ¿
CtrlF2, τΓ«íδ φ¬ß»Ñα¿¼Ñ¡Γ íδ½ τ¿ßΓδ¼. ÆÑ»Ñα∞ πñ὿ΓÑ óßÑ Γ«τ¬¿
«ßΓá¡«óá, πßΓá¡«ó½Ñ¡¡δÑ óἿ ó »αÑñδñπΘѼ ßÑá¡ßÑ, ¡áªáó ¬½áó¿Φ¿
Alt-B D. ÅÑαÑ⌐ñ¿ΓÑ ¬ ßΓα«¬Ñ 97 ¿ ß¡«óá πßΓá¡«ó¿ΓÑ ¡á ¡Ñ⌐ Γ«τ¬π
«ßΓá¡«óá, ¡áªáó ¬½áó¿Φπ F2. ÆÑ»Ñα∞ ¡áªáΓ¿Ñ¼ ¬½áó¿Φ Alt-V B
«Γ¬α«⌐ΓÑ «¬¡« Γ«τѬ «ßΓá¡«óá. Ä»αÑñѽ¿ΓÑ ñá¡¡πε Γ«τ¬π «ßΓá¡«óá
Γᬿ¼ «íαẫ¼, τΓ«íδ »α¿ ¬áªñ«¼ ÑÑ »α«σ«ñÑ óδ»«½¡∩½«ß∞ óδαáªÑ¡¿Ñ
bufp++.
1. éδíÑα¿ΓÑ View|Breakpoints.
2. ÄΓ¬α«⌐ΓÑ ½«¬á½∞¡«Ñ ¼Ñ¡ε «¬¡á Breakpoints, ¡áªáó Alt-F10.
3. éδíÑα¿ΓÑ Set|Options ñ½∩ «Γ¬αδΓ¿∩ í½«¬á ñ¿á½«úá
Breakpoint Options.
4. ôßΓá¡«ó¿ΓÑ ßÑ½Ñ¬Γ¿ó¡δÑ ¬¡«»¬¿ ó »«½«ªÑ¡¿Ñ Execute.
5. ì᪼¿ΓÑ Tab ñ½∩ »ÑαÑσ«ñá ¬ ºá»α«ßπ Action Expression.
6. éóÑñ¿ΓÑ óδαáªÑ¡¿Ñ bufp++.
7. ì᪼¿ΓÑ Esc ñ½∩ ºá¬αδΓ¿∩ ñ¿á½«ú«ó«ú« í½«¬á ¿ Alt-F3 ñ½∩
ó«ºóαáΓá ó «¬¡« Module.
ÆÑ»Ñα∞ ºá»πßΓ¿ΓÑ »α«úαá¼¼π, ¡áªáó ¬½áó¿Φπ F9. éóÑñ¿ΓÑ ñóÑ
«íδτ¡δÑ ßΓ᫬¿:
one two three
four five six
é «ΓóÑΓ ¡á ΓαÑΓ¿⌐ ºá»α«ß ¡áª¼¿ΓÑ Enter, á »« ºáóÑαΦÑ¡¿¿
αáí«Γδ »α«úαá¼¼δ ¡áª¼¿ΓÑ Alt-F5, τΓ«íδ »«ß¼«ΓαÑΓ∞ óδó«ñ »α«úαá¼¼δ
¡á φ¬αá¡Ñ »«½∞º«óáΓѽ∩.
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« »α«úαá¼¼á ßΓá½á αáí«ΓáΓ∞ º¡áτ¿Γѽ∞¡«
½πτΦÑ. ÄíΘÑÑ ¬«½¿τÑßΓó« ß½«ó ¿ ßΓ᫬ «ßΓὫß∞ ¡Ñ»αáó¿½∞¡δ¼, ¡«
Γáí½¿µδ αáßßτ¿ΓδóáεΓß∩ óÑα¡«. ÄßΓá¡«ó¿ΓÑ »α«úαá¼¼π ó ¡áτá½Ñ
Σπ¡¬µ¿¿ printstatistics ¿ »α«óÑα∞ΓÑ, »αáó¿½∞¡δÑ ½¿ ¿ßσ«ñ¡δÑ
ñá¡¡δÑ «¡á »«½πτáÑΓ ñ½∩ óδó«ñá ¡á φ¬αá¡. æ¡áτá½á »ÑαѺáúαπº¿ΓÑ
»α«úαá¼¼π ¡áªáΓ¿Ñ¼ ¬½áó¿Φ Ctrl-F2, τΓ«íδ óÑα¡πΓ∞ ÑÑ ó ¿ßσ«ñ¡«Ñ
ß«ßΓ«∩¡¿Ñ. çáΓѼ »ÑαÑ⌐ñ¿ΓÑ ¬ ßΓα«¬Ñ 104 ¿ ¡áª¼¿ΓÑ ¬½áó¿Φπ F4,
τΓ«íδ óδ»«½¡¿Γ∞ »α«úαá¼¼π ñ« φΓ«⌐ Γ«τ¬¿. Å«ñóÑñ¿ΓÑ ¬παß«α ¬
áαúπ¼Ñ¡Γπ nlines ¿ ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F10 I, τΓ«íδ »α«óÑα¿Γ∞ Ñú«
º¡áτÑ¡¿Ñ. Ä¡« αáó¡« 6, σ«Γ∩ ñ«½ª¡« íδΓ∞ αáó¡« 2.
ÆÑ»Ñα∞ óÑα¡¿ΓÑß∞ ¬ Γ«¼π ¼ÑßΓπ, úñÑ »α«¿ßσ«ñ¿Γ ó맮ó Σπ¡¬µ¿¿
¿º main ¿ ß¡«óá »α«óÑα∞ΓÑ º¡áτÑ¡¿Ñ nlines. ÅÑαѼÑßΓ¿ΓÑ ¬παß«α ¬
ßΓα«¬Ñ 36, »«ñóÑñ¿ΓÑ Ñú« ¬ ß½«óπ nlines ¿ ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F10
I, τΓ«íδ »α«óÑα¿Γ∞ º¡áτÑ¡¿Ñ. çñÑß∞ º¡áτÑ¡¿Ñ nlines αáó¡« 2, τΓ«
∩ó½∩ÑΓß∩ »αáó¿½∞¡δ¼. àß½¿ óδ ß»πßΓ¿ΓÑß∞ ¡¿ªÑ ¬ ßΓα«¬Ñ 46, óδ
ºá¼ÑΓ¿ΓÑ, τΓ« áαúπ¼Ñ¡Γδ nwords ¿ nlines »«¼Ñ¡∩½¿ß∞ ¼ÑßΓἿ.
諼»¿½∩Γ«α ¡¿¬á¬ ¡Ñ ¼«ú º¡áΓ∞, τΓ« óδ ß«í¿α὿ß∞ ¿ß»«½∞º«óáΓ∞ φΓ¿
áαúπ¼Ñ¡Γδ ó ñαπú«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿.
àß½¿ óδ ¿ß»αáó¿ΓÑ φΓ¿ ñóÑ «Φ¿í¬¿, »α«úαá¼¼á íπñÑΓ αáí«ΓáΓ∞
»αáó¿½∞¡«. öá⌐½ TCDEMO.EXE ß«ñÑαª¿Γ ¿ß»αáó½Ñ¡¡πε óÑαß¿ε φΓ«⌐
»α«úαá¼¼δ, ¿, Ñß½¿ σ«Γ¿ΓÑ, óδ ¼«ªÑΓÑ ºá»πßΓ¿Γ∞ ÑÑ.
æÑá¡ß «Γ½áñ¬¿ »á߬á½∞-»α«úαá¼¼δ
-----------------------------------------------------------------
ÄßΓáóΦá∩ß∩ τáßΓ∞ ñá¡¡«⌐ ú½áóδ »«ßó∩ΘÑ¡á «»¿ßá¡¿ε ßÑá¡ßá
«Γ½áñ¬¿ ñѼ«¡ßΓαᵿ«¡¡«⌐ »α«úαá¼¼δ ¡á ∩ºδ¬Ñ Turbo Pascal. àß½¿ óδ
»α«úαá¼¼¿απÑΓÑ ¡á æ¿, óδ ñ«½ª¡δ í뫨 »α«ß¼«ΓαÑΓ∞ »αÑñδñπΘ¿Ñ
αáºñѽδ, ó ¬«Γ«αδσ «»¿ßá¡ ßÑá¡ß «Γ½áñ¬¿ »α«úαá¼¼δ ¡á ∩ºδ¬Ñ Turbo
C.
Å«¿ß¬ «Φ¿í«¬ --------------------------------------------------
ÅαѪñÑ τѼ ¡áτ¿¡áΓ∞ ßÑá¡ß «Γ½áñ¬¿, ñáóá⌐ΓÑ ºá»πßΓ¿¼
ñѼ«¡ßΓαᵿ«¡¡πε »á߬á½∞-»α«úαá¼¼π, ß«ñÑαªáΘπε «Φ¿í¬¿, ¿
»«ß¼«Γα¿¼, ó τѼ ÑÑ αáí«Γá ¡Ñ»αáó¿½∞¡á. ¥Γá »α«úαá¼¼á πªÑ
߬«¼»¿½¿α«óá¡á ¿ ¡áσ«ñ¿Γß∩ ¡á «ñ¡«⌐ ¿º ñ¿ßΓα¿íπΓ¿ó¡δσ ñ¿ß¬ÑΓ.
ä½∩ Γ«ú« τΓ«íδ ºá»πßΓ¿Γ∞ »α«úαá¼¼π, óóÑñ¿ΓÑ ÑÑ ¿¼∩ ¿ Γα¿
áαúπ¼Ñ¡Γá ¬«¼á¡ñ¡«⌐ ßΓ᫬¿:
TPDEMOB first second third
Åα«úαá¼¼á »«»α«ß¿Γ óáß óóÑßΓ¿ ¡Ñ߬«½∞¬« ßΓ᫬ ΓѬßΓá.
éóÑñ¿ΓÑ ñóÑ ßΓ᫬¿, ¬«Γ«αδÑ ó Γ«τ¡«ßΓ¿ ß«ó»áñáεΓ ó »α¿óÑñÑ¡¡δ¼¿
¡¿ªÑ:
ABC DEF GHI
abc def ghi
Å«ß½Ññ¡∩∩ »πßΓá∩ ßΓα«¬á ºáóÑαΦáÑΓ óó«ñ ñá¡¡δσ. Å«ß½Ñ φΓ«ú«
»α«úαá¼¼á TPDEMOB αáß»ÑτáΓáÑΓ ¡á φ¬αá¡Ñ αѺπ½∞ΓáΓδ á¡á½¿ºá
óóÑñÑ¡¡δσ ñá¡¡δσ:
9 letter(s) in 3 word(s) in 2 lines
(9 íπ¬ó ó 3 ß½«óáσ ó 2 ßΓ᫬áσ)
Average of 0.67 words per line
(é ßαÑñ¡Ñ¼ 0.67 ß½«ó ¡á ßΓ᫬π)
Word length: 1 2 3 4 5 6 7 8 9 10
(使¡á ß½«óá)
Frequency: 0 0 3 0 0 0 0 0 0 0
(ùáßΓ«Γá)
Letter: M
(üπ¬óá)
Frequency: 1 1 1 1 1 1 1 1 1 0 0 0 0
(ùáßΓ«Γá)
Word starts: 1 0 0 1 0 0 1 0 0 0 0 0 0
(é ¡áτá½Ñ ß½«óá)
Letter Z
Frequency: 0 0 0 0 0 0 0 0 0 0 0 0 0
Word starts: 0 0 0 1 0 0 0 0 0 0 0 0 0
Program name: C:\td\tpdemob.ex?
(ê¼∩ »α«úαá¼¼δ)
Command line parameters: firs? secon? third
(»áαá¼ÑΓαδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿)
Åα«á¡á½¿º¿α«óáó αѺπ½∞ΓáΓδ αáí«Γδ »α«úαá¼¼δ, ¼«ª¡« óδ∩ó¿Γ∞
»∩Γ∞ ßἫßΓ«∩Γѽ∞¡δσ «Φ¿í«¬:
1. ìÑ»αáó¿½∞¡« »«ñßτ¿Γá¡« ¬«½¿τÑßΓó« ß½«ó (3 ó¼ÑßΓ« 6);
2. ìÑ»αáó¿½∞¡« óδτ¿ß½Ñ¡« ßαÑñ¡ÑÑ ¬«½¿τÑßΓó« ß½«ó ó ßΓ᫬Ñ
(0.67 ó¼ÑßΓ« 3);
3. é ºáú«½«ó¬áσ óΓ«α«⌐ ¿ ΓαÑΓ∞Ñ⌐ Γáí½¿µ π¬áºá¡á Γ«½∞¬« «ñ¡á
íπ¬óá (ó¼ÑßΓ« A..M ¿ N..Z);
4. éδ óóѽ¿ ñóÑ ßΓ᫬¿, ¬áªñá∩ ¿º ¬«Γ«αδσ ß«ñÑαª¿Γ íπ¬óδ «Γ
A ñ« I, «ñ¡á¬« ó Γáí½¿µáσ τáßΓ«Γδ π»«ΓαÑí½Ñ¡¿∩ íπ¬ó ñ½∩ ¬áªñ«⌐ ¿º
¡¿σ π¬áºá¡« Ññ¿¡¿τ¡«Ñ º¡áτÑ¡¿Ñ.
5. Å«ß½Ññ¡¿Ñ ß¿¼ó«½δ óóÑñÑ¡¡δσ »áαá¼ÑΓα«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
í뫨 πΓÑα∩¡δ ¿ ó¼ÑßΓ« ¡¿σ «Γ«íαáªáεΓß∩ ß½πτá⌐¡δÑ ß¿¼ó«½δ (σ«Γ∩
»«ß½Ññ¡¿⌐ »áαá¼ÑΓα «Γ«íαáªáÑΓß∩ »αáó¿½∞¡«).
Éáºαáí«Γ¬á »½á¡á ñÑ⌐ßΓó¿⌐ -------------------------------------
ÅαѪñÑ óßÑú« óδ ñ«½ª¡δ αÑΦ¿Γ∞, ¬á¬πε «Φ¿í¬π áΓᬫóáΓ∞
»Ñαó«⌐. çñÑß∞ ¼«ª¡« ó«ß»«½∞º«óáΓ∞ß∩ σ«α«Φ« »α«óÑαÑ¡¡δ¼ »αá󿽫¼,
¬«Γ«α«Ñ ú½áß¿Γ, τΓ« ¡áτ¿¡áΓ∞ ¡áñ« ß Γ«⌐ «Φ¿í¬¿, ¬«Γ«αá∩
»αÑñ»«½«ª¿Γѽ∞¡« 󫺡¿¬áÑΓ »Ñαó«⌐. é φΓ«⌐ »α«úαá¼¼Ñ »«ß½Ñ
¿¡¿µ¿á½¿ºáµ¿¿ ñá¡¡δσ ß »«¼«Θ∞ε »α«µÑñπαδ Init ñá¡¡δÑ, óóÑñÑ¡¡δÑ ß
¬½áó¿áΓπαδ, ßτ¿ΓδóáεΓß∩ Σπ¡¬µ¿Ñ⌐ GetLine, á ºáΓѼ «íαáíáΓδóáεΓß∩
»α«µÑñπα«⌐ ProcessLine, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ óóÑñÑΓ »πßΓπε
ßΓ᫬π. Åα«µÑñπαá ProcessLine »α«óÑα∩ÑΓ ¬áªñπε óóÑñÑ¡¡πε ßΓ᫬π ¿
¿º¼Ñ¡∩ÑΓ º¡áτÑ¡¿∩ ú½«íá½∞¡δσ ßτÑΓτ¿¬«ó. çáΓѼ αѺπ½∞ΓáΓδ á¡á½¿ºá
«Γ«íαáªáεΓß∩ ¡á φ¬αá¡Ñ »α«µÑñπα«⌐ ShowResults. ê ¡á¬«¡Ñµ, ó
»«½¡«ßΓ∞ε ¡Ñºáó¿ß¿¼«⌐ »«ñ»α«úαá¼¼Ñ »α«µÑñπαá ParamsOnHeap ß«ºñáÑΓ
ó ñ¿¡á¼¿τÑ߬«⌐ »á¼∩Γ¿ ßó∩º¡δ⌐ ß»¿ß«¬ »áαá¼ÑΓα«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿,
á ºáΓѼ αáºñѽ∩ÑΓ Ñú« ¡á φ½Ñ¼Ñ¡Γδ ¿ »ÑτáΓáÑΓ ß»¿ß«¬ »áαá¼ÑΓα«ó ó
¬«¡µÑ »α«úαá¼¼δ.
æαÑñ¡ÑÑ ¬«½¿τÑßΓó« ß½«ó ó ßΓα«¬Ñ óδτ¿ß½∩ÑΓß∩ »α«µÑñπα«⌐
ShowResults ¡á «ß¡«óÑ ¬«½¿τÑßΓóá ßΓ᫬ ¿ ¬«½¿τÑßΓóá ß½«ó.
ū߬«½∞¬π ¬«½¿τÑßΓó« ß½«ó »«-ó¿ñ¿¼«¼π óδτ¿ß½∩ÑΓß∩ ¡Ñ»αáó¿½∞¡«, óδ
ñ«½ª¡δ, »αѪñÑ óßÑú« »α«óÑα¿Γ∞ »α«µÑñπαπ ProcessLine ¿
»«ß¼«ΓαÑΓ∞, ¬á¬ ¿º¼Ñ¡∩ÑΓß∩ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ NumWords. äáªÑ
Ñß½¿ óº∩Γ∞ ¡ÑóÑα¡«Ñ º¡áτÑ¡¿Ñ NumWords, ßαÑñ¡ÑÑ ¬«½¿τÑßΓó« ß½«ó ó
ßΓ᫬Ñ, αáó¡«Ñ 0.67, ∩ó½∩ÑΓß∩ ß«óÑαΦÑ¡¡« íÑßß¼δ߽ѡ¡δ¼. 髺¼«ª¡«,
«Φ¿í¬á ñ«»πΘÑ¡á ó óδτ¿ß½Ñ¡¿∩σ, óδ»«½¡∩Ѽδσ »α«µÑñπα«⌐
ShowResults, ¬«Γ«αá∩ Γá¬ªÑ ºáß½πª¿óáÑΓ óáΦÑú« 󡿼᡿∩.
çáú«½«ó¬¿ óßÑσ Γáí½¿µ α¿ßπεΓß∩ »« ºá»α«ßπ »α«µÑñπαδ
ShowResults. ÅαѪñÑ τѼ »«»δΓáΓ∞ß∩ «í¡áαπª¿Γ∞ óΓ«απε ¿ ΓαÑΓ∞ε
«Φ¿í¬¿, óδ ñ«½ª¡δ ñ«ªñáΓ∞ß∩, ¬«úñá ºá¬«¡τ¿Γß∩ «ß¡«ó¡«⌐ µ¿¬½.
ū߬«½∞¬π ¬«½¿τÑßΓó« íπ¬ó ¿ ß½«ó óδτ¿ß½∩ÑΓß∩ ¡Ñ»αáó¿½∞¡«, φΓ«
σ«α«Φ¿⌐ º¡á¬ Γ«ú«, τΓ« τΓ«-Γ« ¡Ñ ó »«α∩ñ¬Ñ ó »α«µÑñπαÑ
ProcessLine, ¿ ¿¼ÑÑ¡« Γá¼ ß½ÑñπÑΓ ¡áτáΓ∞ »«¿ß¬ »Ñαó«⌐ ¿ τÑΓóÑαΓ«⌐
«Φ¿í«¬.
ê ¡á¬«¡Ñµ, »«ß½Ñ Γ«ú«, ¬á¬ óδ ΓΘáΓѽ∞¡« ¿ßß½ÑñπÑΓÑ τáßΓ¿
»α«úαá¼¼δ, ó ¬«Γ«αδσ »α«¿ºó«ñ¿Γß∩ αáßτÑΓ ¬«½¿τÑßΓóá ß½«ó ¿ íπ¬ó,
»α«óÑα∞ΓÑ »α«µÑñπαπ ParmsOnHeap, τΓ«íδ ¡á⌐Γ¿ ¿ ¿ß»αáó¿Γ∞
»«ß½Ññ¡εε (»∩Γπε) «Φ¿í¬π.
ÆÑ»Ñα∞, »«ß½Ñ Γ«ú« ¬á¬ óδ ¡Ñ¼¡«ú« »«αẼδß½¿½¿ ¡áñ
¿¼ÑεΘ¿¼¿ß∩ »α«í½Ñ¼á¼¿ ¿ ß«ßΓá󿽿 »α¿¼Ñα¡δ⌐ »½á¡ ñÑ⌐ßΓó¿⌐, ¼«ª¡«
¡áτ¿¡áΓ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡πε «Γ½áñ¬π.
çá»π߬ «Γ½áñτ¿¬á Turbo Debugger -------------------------------
ä½∩ Γ«ú« τΓ«íδ ¡áτáΓ∞ ßÑá¡ß «Γ½áñ¬¿ ñѼ«¡ßΓαᵿ«¡¡«⌐
»α«úαá¼¼δ, ºáúαπº¿ΓÑ «Γ½áñτ¿¬ ¿ ºáñá⌐ΓÑ ΓÑ ªÑ »áαá¼ÑΓαδ ¬«¼á¡ñ¡«⌐
ßΓ᫬¿, τΓ« ¿ αá¡∞ΦÑ:
TD TPDEMOB first second third
Turbo Debugger ºáúαπº¿Γ ñѼ«¡ßΓαᵿ«¡¡πε »α«úαá¼¼π,
ß«ñÑαªáΘπε «Φ¿í¬¿, ¿ «Γ«íαáº¿Γ ßó«⌐ ¿ßσ«ñ¡δ⌐ φ¬αá¡, ¼Ñ¡ε ¿ Γ.ñ.
àß½¿ óδ ºáσ«Γ¿ΓÑ ºá¬«¡τ¿Γ∞ πτÑí¡δ⌐ ßÑá¡ß ¿ óÑα¡πΓ∞ß∩ ó DOS, óδ
¼«ªÑΓÑ ßñѽáΓ∞ φΓ« ó ½εí«⌐ ¼«¼Ñ¡Γ, ¡áªáó ¬½áó¿Φ¿ Alt-X. àß½¿ óδ
τΓ«-½¿í« íѺ¡áñѪ¡« ¿ß»«αΓ¿ΓÑ, óδ ß¼«ªÑΓÑ ó ½εí«⌐ ¼«¼Ñ¡Γ
»ÑαѺáúαπº¿Γ∞ ñѼ«¡ßΓαᵿ«¡¡πε »α«úαá¼¼π ¿ ¡áτáΓ∞ óßÑ ß¡áτá½á,
¡áªáó ¬½áó¿Φ¿ CtrlF2. (çá¼ÑΓ¿¼, τΓ« »α¿ φΓ«¼ ¡Ñ πñá½∩εΓß∩ Γ«τ¬¿
«ßΓá¡«óá ¿ óδαáªÑ¡¿∩, ºá¡ÑßÑ¡¡δÑ ó «¬¡« ߽Ѫѡ¿∩.)
æπΘÑßΓóπÑΓ ñóá »«ñσ«ñá ¬ «Γ½áñ¬Ñ »«ñ»α«úαá¼¼, »«ñ«í¡δσ
ProcessLine: ¼«ª¡« óδ»«½¡∩Γ∞ ÑÑ ó »«Φáú«ó«¼ αѪ¿¼Ñ, ßΓα«¬á ºá
ßΓ᫬«⌐, ß½Ññ∩ ºá »αáó¿½∞¡«ßΓ∞ε ÑÑ αáí«Γδ, á ¼«ª¡« «ßΓá¡«ó¿Γ∞
»α«úαá¼¼π ßαáºπ »«ß½Ñ «¬«¡τá¡¿∩ óδ»«½¡Ñ¡¿∩ »α«µÑñπαδ ProcessLine
¿ »α«óÑα¿Γ∞ αѺπ½∞ΓáΓδ ÑÑ αáí«Γδ. ū߬«½∞¬π ¿ ¬«½¿τÑßΓó« íπ¬ó ¿
¬«½¿τÑßΓó« ß½«ó óδτ¿ß½∩εΓß∩ ¡Ñ»αáó¿½∞¡«, ߬«αÑÑ óßÑú« ß½ÑñπÑΓ
ºáú½∩¡πΓ∞ ó¡πΓα∞ »α«µÑñπαδ ProcessLine ¿ »α«óÑα¿Γ∞, ¬á¬
»α«¿ßσ«ñ¿Γ «íαáí«Γ¬á ß¿¼ó«½«ó.
ìáó¿úᵿ∩ »« »α«úαá¼¼Ñ ----------------------------------------
êΓá¬, ¼δ αÑΦ¿½¿ ºá»πßΓ¿Γ∞ »α«úαá¼¼π ¿ »α«ß½Ññ¿Γ∞ ó »«Φáú«ó«¼
αѪ¿¼Ñ óδ»«½¡Ñ¡¿Ñ »α«µÑñπαδ ProcessLine. ä½∩ φΓ«ú« ¡áñ«
ó«ß»«½∞º«óáΓ∞ß∩ «ñ¡¿¼ ¿º ¡Ñ߬«½∞¬¿σ ß»«ß«í«ó. ¡« τÑΓδαÑ αáºá
¡áªáΓ∞ ¬½áó¿Φπ F8 (τΓ«íδ óδ»«½¡¿Γ∞ ó맮óδ »α«µÑñπα ¿ Σπ¡¬µ¿⌐, ¡Ñ
ºáσ«ñ∩ ó ¡¿σ), á ºáΓѼ «ñ¿¡ αẠ¡áªáΓ∞ ¬½áó¿Φπ F7 (τΓ«íδ ó«⌐Γ¿ ó
»α«µÑñπαπ ProcessLine ¿ ¡áτáΓ∞ ÑÑ »«Φáú«ó«Ñ óδ»«½¡Ñ¡¿Ñ). ¡«
Γá¬ªÑ »ÑαѼÑßΓ¿Γ∞ ¬παß«α ¬ ßΓα«¬Ñ 231, ¡áªáΓ∞ ¬½áó¿Φπ F4 (¬«¼á¡ñá
Go to Cursor), á ºáΓѼ ¡áªáΓ∞ ¬½áó¿Φπ F7, τΓ«íδ ¡áτáΓ∞ »«Φáú«ó«Ñ
óδ»«½¡Ñ¡¿Ñ »α«µÑñπαδ ProcessLine.
éÑα¿Γß∩ ó φΓ« ¿½¿ ¡ÑΓ, ¡« φΓ«Γ ß»¿ß«¬ ¼«ª¡« ÑΘÑ »α«ñ«½ª¿Γ∞,
«ñ¡á¬« óδ »«»δΓá⌐ΓÑß∞ ó«ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬« «ñ¡¿¼ ¿º ¡¿σ:
¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F9 ¿ ¡á φ¬αá¡Ñ »«∩ó¿Γß∩ »«½Ñ ºá»α«ßá, ó
¬«Γ«α«Ñ ¡áñ« óóÑßΓ¿ áñαÑß ¬«ñá, ¬ ¬«Γ«α«¼π ΓαÑíπÑΓß∩ »ÑαÑ⌐Γ¿.
éóÑñ¿ΓÑ ß½«ó« processline ¿ ¡áª¼¿ΓÑ Enter. Åα«úαá¼¼á íπñÑΓ
óδ»«½¡∩Γ∞ß∩ ñ« ΓÑσ »«α, »«¬á π»αáó½Ñ¡¿Ñ ¡Ñ »ÑαÑ⌐ñÑΓ ¬ »α«µÑñπαÑ
ProcessLine. éóÑñ¿ΓÑ ΓÑ ªÑ ñá¡¡δÑ, τΓ« ¿ αá¡∞ΦÑ, ¬«úñá »α«úαá¼¼á
»α«ß¿½á óóÑßΓ¿ ßΓ᫬π (Γ« ÑßΓ∞ ABC DEF GHI).
é φΓ«⌐ »«ñ»α«úαá¼¼Ñ ¿¼ÑÑΓß∩ ¡Ñ߬«½∞¬« µ¿¬½«ó. é¡ÑΦ¡¿⌐ µ¿¬½
»α«óÑα∩ÑΓ óßε ßΓ᫬π. é¡πΓα¿ φΓ«ú« µ¿¬½á ¿¼ÑÑΓß∩ µ¿¬½, ¬«Γ«αδ⌐
ß½πª¿Γ ñ½∩ »α«»π߬á ß¿¼ó«½«ó, ¬«Γ«αδÑ ¡Ñ ∩ó½∩εΓß∩ íπ¬óἿ, ¿ ÑΘÑ
«ñ¿¡ µ¿¬½, ó ¬«Γ«α«¼ »α«¿ºó«ñ¿Γß∩ «íαáí«Γ¬á ß½«ó ¿ íπ¬ó.
ÅÑαѼÑßΓ¿ΓÑ ¬παß«α ¬ ßΓα«¬Ñ 133, ó ¬«Γ«α«⌐ ¡áτ¿¡áÑΓß∩ µ¿¬½ while,
¿ ¡áª¼¿ΓÑ ¬½áó¿Φπ F4 (¬«¼á¡ñá Go to Cursor).
é φΓ«¼ µ¿¬½Ñ »α«¿ºó«ñ¿Γß∩ »α«óÑα¬á óóÑñÑ¡¡δσ ñá¡¡δσ ñ« ΓÑσ
»«α, »«¬á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓ ¬«¡Ñµ ßΓ᫬¿ ¿½¿ ¡Ñ íπñÑΓ ¡á⌐ñÑ¡á
íπ¬óá. Å«ß½Ññ¡ÑÑ πß½«ó¿Ñ »α«óÑα∩ÑΓß∩ »πΓѼ ó맮óá íπ½Ñó߬«⌐
Σπ¡¬µ¿¿ IsLetter. ì᪼¿ΓÑ ¬½áó¿Φπ F7, τΓ«íδ ó«⌐Γ¿ ó¡πΓα∞ φΓ«⌐
Σπ¡¬µ¿¿. IsLetter ∩ó½∩ÑΓß∩ 󽫪ѡ¡«⌐ Σπ¡¬µ¿Ñ⌐, ¬«Γ«αá∩ íÑαÑΓ
ß¿¼ó«½∞¡«Ñ º¡áτÑ¡¿Ñ ¿ ó«ºóαáΘáÑΓ True, Ñß½¿ ß¿¼ó«½ ∩ó½∩ÑΓß∩
íπ¬ó«⌐, ¿ False ó »α«Γ¿ó¡«¼ ß½πτáÑ. äáªÑ ¡Ñ «τÑ¡∞ ΓΘáΓѽ∞¡á∩
»α«óÑα¬á »«ºó«½∩ÑΓ «í¡áαπª¿Γ∞, τΓ« «¡á »α«óÑα∩ÑΓ Γ«½∞¬« íπ¬óδ
óÑασ¡Ñú« αÑú¿ßΓαá. Ä¡á ñ«½ª¡á íδ½á íδ »α«óÑα∩Γ∞ ß¿¼ó«½δ ó
ñ¿á»áº«¡áσ 'A'..'Z' ¿ 'a'..'z' ¿½¿ »αÑ«íαẫóδóáΓ∞ ß¿¼ó«½ ó
ß¿¼ó«½ óÑασ¡Ñú« αÑú¿ßΓαá »αѪñÑ τѼ óδ»«½¡∩Γ∞ »α«óÑα¬π.
üÑú½δ⌐ á¡á½¿º óóÑñÑ¡¡δσ ßΓ᫬ ΓѬßΓá ñáÑΓ ñ«»«½¡¿Γѽ∞¡δ⌐
¬½ετ ¬ ¡áσ«ªñÑ¡¿ε ¿ßΓ«τ¡¿¬á «Φ¿í¬¿. éδ óóѽ¿ íπ¬óδ «Γ 'A' ñ« 'I'
¬á¬ óÑασ¡Ñú«, Γᬠ¿ ¡¿ª¡Ñú« αÑú¿ßΓα«ó, «ñ¡á¬« ½¿Φ∞ »«½«ó¿¡á ¿º
¡¿σ íδ½á «ΓαáªÑ¡á »α¿ αáß»Ñτá⪥ αѺπ½∞ΓáΓ«ó. ÆÑ»Ñα∞ óδ º¡áÑΓÑ,
»«τѼπ φΓ« »α«¿º«Φ½«.
éÑα¡¿ΓÑß∞ «íαáΓ¡« ¬ ßΓ᫬Ñ, ó ¬«Γ«α«⌐ óδºδóáÑΓß∩ Σπ¡¬µ¿∩
IsLetter, ó«ß»«½∞º«óáóΦ¿ß∞ ÑΘÑ «ñ¡¿¼ »α¿Ñ¼«¼ «Γ½áñ¬¿: ¡áª¼¿ΓÑ
¬½áó¿Φ¿ Alt-F8, »« ¬«Γ«αδ¼ »α«úαá¼¼á óδ»«½¡∩ÑΓß∩ ñ« ó«ºóαáΓá ¿º
ΓѬπΘÑ⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿. ū߬«½∞¬π óΓ«αá∩ ßΓα«¬á ¿ßσ«ñ¡δσ
ñá¡¡δσ, abc def ghi, ß«ñÑαª¿Γ Γ«½∞¬« ß¿¼ó«½δ ¡¿ª¡Ñú« αÑú¿ßΓαá,
¬áªñδ⌐ ¿º ¡¿σ íδ½ ó«ß»α¿¡∩Γ »α«úαá¼¼«⌐ ¬á¬ »πßΓ«⌐ (¡Ñ íπ¬óá) ¿
íδ½ »α«»πΘÑ¡. ¥Γ« «íΩ∩ß¡∩ÑΓ »«½πτÑ¡¿Ñ ¡ÑóÑα¡δσ αѺπ½∞ΓáΓ«ó »α¿
»«ñßτÑΓÑ ¬«½¿τÑßΓóá íπ¬ó ¿ ß½«ó ¿ «Γ¬αδóáÑΓ »Ñαó«⌐ ¿ τÑΓóÑα¡«⌐
«Φ¿í«¬.
ü½«¬ ñ¿á½«úá Evaluate/Modify ----------------------------------
îѪñπ »α«τ¿¼, ßπΘÑßΓóπÑΓ ÑΘÑ «ñ¿¡ ß»«ß«í, ¬«Γ«αδ⌐ »«ºó«½¿Γ
óδ∩ó¿Γ∞ ¡Ñ»αáó¿½∞¡πε αáí«Γπ Σπ¡¬µ¿¿ IsLetter. ÄΓ¬α«⌐ΓÑ í½«¬
ñ¿á½«úá Evaluate/Modify, ¡áªáó ¬½áó¿Φ¿ Alt-D E ¿ óóÑñ¿ΓÑ
ß½ÑñπεΘÑÑ óδαáªÑ¡¿Ñ:
IsLetter('a') = IsLetter('A')
Äíá φΓ¿σ ß¿¼ó«½á, A ¿ a, ∩ó½∩εΓß∩ íπ¬óἿ, «ñ¡á¬« Σπ¡¬µ¿∩
ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ False, ¬«Γ«α«Ñ ú«ó«α¿Γ « Γ«¼, «¡¿
«íαáíáΓδóáεΓß∩ Σπ¡¬µ¿Ñ⌐ IsLetter ¡Ñ«ñ¿¡á¬«ó«. (ü½«¬ ñ¿á½«úá
Evaluate/Modify ¿ «¬¡« ߽Ѫѡ¿∩ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ óδτ¿ß½Ñ¡¿∩
óδαáªÑ¡¿⌐, óδ»«½¡Ñ¡¿∩ »α¿ßóá¿óá¡¿⌐ ¿½¿ ó맮óá »α«µÑñπα ¿ Σπ¡¬µ¿⌐.
ä½∩ »«½πτÑ¡¿∩ í«½ÑÑ »«ñα«í¡«⌐ ¿¡Σ«α¼áµ¿¿ «íαáΓ¿ΓÑß∞ ¬ ú½áóÑ 6).
Åα«óÑα¬á º¡áτÑ¡¿⌐ »ÑαѼѡ¡δσ ----------------------------------
äóÑ «Φ¿í¬¿ »«ºáñ¿ ¿ Γα¿ ó»ÑαÑñ¿. ÄΦ¿í¬π #2 ¡á⌐Γ¿ º¡áτ¿Γѽ∞¡«
»α«ΘÑ, τѼ ñóÑ »αÑñδñπΘ¿Ñ. ì᪼¿ΓÑ ¬½áó¿Φ¿ Alt-F8, τΓ«íδ óδ⌐Γ¿ ¿º
»α«µÑñπαδ ProcessLine, ºáΓѼ »ÑαѼÑßΓ¿ΓÑ ¬παß«α ¬ ßΓα«¬Ñ 234 ¿
¡áª¼¿ΓÑ ¬½áó¿Φπ F4, τΓ«íδ óδ»«½¡¿Γ∞ »α«úαá¼¼π ñ« φΓ«⌐ ßΓ᫬¿.
Åα«úαá¼¼á »«»α«ß¿Γ óáß óóÑßΓ¿ ßΓ᫬π. éóÑñ¿ΓÑ abc def ghi ¿
¡áª¼¿ΓÑ Enter, ºáΓѼ ¡áª¼¿ΓÑ Enter ÑΘÑ αáº, ¬«úñá »«∩ó¿Γß∩ ¡«óδ⌐
ºá»α«ß. ÆÑ»Ñα∞ ¡áª¼¿ΓÑ F7, τΓ«íδ ó«⌐Γ¿ ó »α«µÑñπαπ ShowResults.
ìừ¼¡¿¼, τΓ« ¼δ »δΓáѼß∩ «»αÑñѽ¿Γ∞, »«τѼπ ßαÑñ¡ÑÑ
¬«½¿τÑßΓó« ß½«ó ó ßΓα«¬Ñ «Γ«íαáªáÑΓß∩ ¡Ñ»αáó¿½∞¡«. ÅÑαóá∩ ßΓ᫬á
ó »α«µÑñπαÑ ShowResults óδτ¿ß½∩ÑΓ ¬«½¿τÑßΓó« ßΓ᫬ ó ß½«óÑ,
ó¼ÑßΓ« Γ«ú«, τΓ«íδ óδτ¿ß½∩Γ∞ ¬«½¿τÑßΓó« ß½«ó ó ßΓ᫬Ñ. ÆÑ»Ñα∞
»«¡∩Γ¡«: φΓ¿ ñóá ΓÑα¼á ¡áñ« »«¼Ñ¡∩Γ∞ ¼ÑßΓἿ.
ÆÑ»Ñα∞ σ«α«Φ« íδ πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ« »ÑαѼѡ¡δÑ NumLines ¿
NumWords ß«ñÑαªáΓ ΓÑ º¡áτÑ¡¿∩, ¬«Γ«αδÑ óδ «ª¿ñáÑΓÑ. ç¡áτÑ¡¿Ñ
NumLines ñ«½ª¡« íδΓ∞ αáó¡« 2, á º¡áτÑ¡¿Ñ NumWords (»«ß¬«½∞¬π ¼δ
ÑΘÑ ¡Ñ ¿ß»αá󿽿 «Φ¿í¬π ó Σπ¡¬µ¿¿ IsLetter) ñ«½ª¡« íδΓ∞ αáó¡« 3.
Å«ñóÑñ¿ΓÑ ¬παß«α ¬ ß½«óπ NumLines ¿ ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F10 I,
τΓ«íδ »α«óÑα¿Γ∞ º¡áτÑ¡¿Ñ φΓ«⌐ »ÑαѼѡ¡«⌐. é «¬¡Ñ »α«óÑન íπñÑΓ
»«¬áºá¡ áñαÑß »ÑαѼѡ¡«⌐ NumLines, ÑÑ Γ¿» ¿ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ ó
ñÑß∩Γ¿τ¡«¼ ¿ ΦÑßΓ¡áñµáΓ¿α¿τ¡«¼ Σ«α¼áΓáσ. àÑ º¡áτÑ¡¿Ñ
ñÑ⌐ßΓó¿Γѽ∞¡« αáó¡« 2, »«φΓ«¼π ¼«ª¡« «ßΓáó¿Γ∞ Ñú« ó »«¬«Ñ ¿
»α«óÑα¿Γ∞ º¡áτÑ¡¿Ñ NumWords. ì᪼¿ΓÑ Esc, τΓ«íδ ºá¬αδΓ∞ «¬¡«
»α«óÑન, ºáΓѼ »«ñóÑñ¿ΓÑ ¬παß«α ¬ ß½«óπ NumWords ¿ ß¡«óá ¡áª¼¿ΓÑ
¬½áó¿Φ¿ Alt-F10 I (ó¼ÑßΓ« φΓ«ú« ¼«ª¡« í佫 ¿ß»«½∞º«óáΓ∞ á¬Γ¿ó¡πε
¬½áó¿Φπ Ctrl-I). ÅÑαѼѡ¡á∩ NumWords ñÑ⌐ßΓó¿Γѽ∞¡« ¿¼ÑÑΓ Γ«
º¡áτÑ¡¿Ñ (¡Ñ»αáó¿½∞¡«Ñ), ¬«Γ«α«Ñ ¼δ «ª¿ñ὿, Γ« ÑßΓ∞ 3, »«φΓ«¼π
ÑÑ Γ«ªÑ ¼«ª¡« «ßΓáó¿Γ∞ ó »«¬«Ñ.
¡« ½¿? àßΓ∞ óÑñ∞ ÑΘÑ «ñ¡á »α«í½Ñ¼á, ßó∩ºá¡¡á∩ ß φΓ¿¼
óδτ¿ß½Ñ¡¿Ñ¼, ¿ «¡á ñáªÑ ¡Ñ ó¬½ετÑ¡á ó ¡áΦ ß»¿ß«¬. ÅÑαÑñ
óδ»«½¡Ñ¡¿Ñ¼ ñѽѡ¿∩ »α«úαá¼¼á ¡Ñ »α«¿ºó«ñ¿Γ »α«óÑα¬π ¡á αáóÑ¡ßΓó«
¡π½ε óΓ«α«ú« ΓÑα¼á. àß½¿ ºá»πßΓ¿Γ∞ »α«úαá¼¼π ß ¡áτá½á ¿ ¡Ñ
óó«ñ¿Γ∞ ¡¿¬á¬¿σ ñá¡¡δσ (»α«ßΓ« ¡áªáΓ∞ Enter ó «ΓóÑΓ ¡á ÑÑ
ºá»α«ß), Γ« »α«¿º«⌐ñÑΓ ΣáΓá½∞¡δ⌐ ßí«⌐ (ñáªÑ Ñß½¿ »«¼Ñ¡∩Γ∞ ¼ÑßΓἿ
ñѽ¿¼«Ñ ¿ ñѽ¿Γѽ∞).
ùΓ«íδ πíÑñ¿Γ∞ß∩ ó φΓ«¼, ¡áª¼¿ΓÑ ¬½áó¿Φπ Esc, τΓ«íδ ºá¬αδΓ∞
«¬¡« »α«óÑન, ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-R P, τΓ«íδ ºáóÑαΦ¿Γ∞ ΓѬπΘ¿⌐
ßÑá¡ß «Γ½áñ¬¿, ¡áª¼¿ΓÑ ¬½áó¿Φπ F9, τΓ«íδ ºá»πßΓ¿Γ∞ »α«úαá¼¼π ß
¡áτá½á, á ºáΓѼ ó «ΓóÑΓ ¡á ºá»α«ß »α«úαá¼¼δ TPDEMOB ¡áª¼¿ΓÑ
Enter. Éáí«Γá »α«úαá¼¼δ íπñÑΓ «ßΓá¡«ó½Ñ¡á ¿ ¡á φ¬αá¡Ñ »«∩ó¿Γß∩
ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ »Ñα¿«ñá óδ»«½¡Ñ¡¿∩. ùΓ«íδ ¿ß»αáó¿Γ∞ «Φ¿í¬π,
óδ ñ«½ª¡δ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ñá¡¡δ⌐ «»ÑαáΓ«α ß½ÑñπεΘ¿¼ «íαẫ¼:
if NumLines <> 0 then
AvgWords := NumWords / NumLines
else
AvgWords := 0;
ÆÑ»Ñα∞ »«¬«¡τÑ¡« ß «Φ¿í¬á¼¿ #2 ¿ #2í. ì« αẠπª óδ ¡áτ὿
αáí«ΓáΓ∞ ß «¬¡«¼ ߽Ѫѡ¿∩, »«»α«íπ⌐ΓÑ ¿ß»«½∞º«óáΓ∞ Ñú« ñ½∩
»α«ß¼«Γαá ß«ñÑন¼«ú« ßΓαπ¬Γπαδ ñá¡¡δσ. ÅÑαѼÑßΓ¿ΓÑ ¬παß«α ¬
«»¿ßá¡¿ε ¼áßß¿óá LetterTable ó ßΓα«¬Ñ 50. Å«ñóÑñ¿ΓÑ ¬παß«α ¬
ß½«óπ LetterTable ¿ ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F10 I. éδ πó¿ñ¿ΓÑ, τΓ«
φΓ« ¼áßß¿ó ºá»¿ßÑ⌐, ß«ñÑαªáΘ¿⌐ 26 φ½Ñ¼Ñ¡Γ«ó. ä½∩ »α«ß¼«Γαá óßÑú«
¼áßß¿óá ¼«ª¡« »α«¬απτ¿óáΓ∞ ß«ñÑন¼«Ñ «¬¡á ß »«¼«Θ∞ε ¬½áó¿Φ
π»αáó½Ñ¡¿∩ ¬παß«α«¼ ¿ ¡áª¿¼áΓ∞ Enter, τΓ«íδ »α«óÑα¿Γ∞ º¡áτÑ¡¿Ñ
¡πª¡δσ φ½Ñ¼Ñ¡Γ«ó. ¥Γ« «τÑ¡∞ ¼«Θ¡«Ñ ßαÑñßΓó« »α«óÑન ßΓαπ¬Γπα
ñá¡¡δσ, ¿ «¡« ÑΘÑ »α¿ú«ñ¿Γß∩ ¡á¼ ñ½∩ »α«óÑન ßó∩º¡«ú« ß»¿ß¬á,
ß«ºñá¡¡«ú« »α«µÑñπα«⌐ ParmsOnHeap.
æ½ÑªÑ¡¿Ñ ºá »ÑαѼѡ¡δ¼¿ ---------------------------------------
ÆÑ»Ñα∞ »ÑαÑ⌐ñѼ ¬ »«¿ß¬π «Φ¿í¬¿ ó »α«µÑñπαÑ ShowResults,
¬«Γ«αá∩ »α¿ó«ñ¿Γ ¬ ¡Ñ»αáó¿½∞¡«¼π «Γ«íαáªÑ¡¿ε ºáú«½«ó¬«ó ßΓ«½íµ«ó
ó Γáí½¿µáσ («Φ¿í¬¿ #3). ū߬«½∞¬π αáí«Γá »α«úαá¼¼δ πªÑ íδ½á
«ßΓá¡«ó½Ñ¡á ó αѺπ½∞ΓáΓÑ ó«º¡¿¬¡«óÑ¡¿∩ «Φ¿í¬¿ ñѽѡ¿∩ ¡á ¡«½∞,
»«ñú«Γ«ó∞ΓÑ ÑÑ ¬ ß½ÑñπεΘѼπ ßÑá¡ßπ, ¡áªáó ¬½áó¿Φ¿ Alt-R P (τΓ«íδ
óÑα¡πΓ∞ »α«úαá¼¼π ó ¿ßσ«ñ¡«Ñ ß«ßΓ«∩¡¿Ñ). çáΓѼ ¡áª¼¿ΓÑ ¬½áó¿Φ¿
AltF9, óóÑñ¿ΓÑ showresults ¿ ¡áª¼¿ΓÑ Enter. ÆÑ»Ñα∞ óóÑñ¿ΓÑ óßÑ ΓÑ
ªÑ ñá¡¡δÑ ABC DEF GHI ¿ ¡áª¼¿ΓÑ Enter ÑΘÑ αáº. ê ¡á¬«¡Ñµ, óóÑñ¿ΓÑ
abc def ghi ¿ ñóáªñδ ¡áª¼¿ΓÑ Enter. ÆÑ»Ñα∞ Turbo Debugger ñ«½ªÑ¡
«ßΓá¡«ó¿Γ∞ »α«úαá¼¼π ó ¡áτá½Ñ »α«µÑñπαδ ShowResults.
ShowResults ¿ß»«½∞ºπÑΓ ó½«ªÑ¡¡πε »α«µÑñπαπ ShowLetterInfo,
¬«Γ«αá∩ «Γ«íαáªáÑΓ Γáí½¿µδ íπ¬ó. ÅÑαѼÑßΓ¿ΓÑ ¬παß«α 󡿺 ¬ ßΓ᫬Ñ
103, ¡áª¼¿ΓÑ ¬½áó¿Φπ F4, á ºáΓѼ ¡áª¼¿ΓÑ ¬½áó¿Φπ F7, τΓ«íδ ¡áτáΓ∞
óδ»«½¡Ñ¡¿Ñ »α«µÑñπαδ ShowLetterInfo ó »«Φáú«ó«¼ αѪ¿¼Ñ.
Ä¡á ß«ñÑαª¿Γ Γα¿ µ¿¬½á for. é »Ñαó«¼ µ¿¬½Ñ «Γ«íαáªáεΓß∩
ºáú«½«ó¬¿ ßΓ«½íµ«ó, á ó« óΓ«α«¼ ¿ ó ΓαÑΓ∞Ѽ - τáßΓ«Γá
π»«ΓαÑí½Ñ¡¿∩ íπ¬ó. êß»«½∞ºπ⌐ΓÑ ¬½áó¿Φπ F7, τΓ«íδ ó«⌐Γ¿ ó »Ñαóδ⌐
µ¿¬½, ¬«Γ«αδ⌐ ¡áτ¿¡áÑΓß∩ ó ßΓα«¬Ñ 62. Å«ñóÑñ¿ΓÑ ¬παß«α ¬
»ÑαѼѡ¡δ¼ FromLet ¿ ToLet ¿ ß »«¼«Θ∞ε ¬½áó¿Φ Alt-F10 I »α«óÑα∞ΓÑ
¿σ º¡áτÑ¡¿∩. Ä¡¿ óδú½∩ñ∩Γ ó»«½¡Ñ ¡«α¼á½∞¡« (»Ñαóá∩ αáó¡á 'A',
óΓ«αá∩ αáó¡á 'M'). ì᪼¿ΓÑ ¬½áó¿Φ¿ Alt-F5, τΓ«íδ »α«ß¼«ΓαÑΓ∞
φ¬αá¡ »«½∞º«óáΓѽ∩ ¿ πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ« óßÑ «ßΓὫß∞ ¡á ¼ÑßΓÑ.
ì᪼¿ΓÑ ½εíπε ¬½áó¿Φπ, τΓ«íδ óÑα¡πΓ∞ß∩ ó «¬¡« ¼«ñπ½∩.
ä½∩ »α«óÑન µ¿¬½«ó, »«ñ«í¡δσ ñá¡¡«¼π, «τÑ¡∞ πñ«í¡«
¿ß»«½∞º«óáΓ∞ «¬¡« ߽Ѫѡ¿∩. Å«ñóÑñ¿ΓÑ ¬παß«α ¬ ß½«óπ ch ¿ ¡áª¼¿ΓÑ
¬½áó¿Φ¿ Ctrl-W. ÆÑ»Ñα∞ ß »«¼«Θ∞ε ¬½áó¿Φ¿ F7 ¡áτ¡¿ΓÑ óδ»«½¡∩Γ∞
µ¿¬½ for. èᬠ¿ «ª¿ñὫß∞, óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α Write ó ßΓ᫬Ñ
64. Äñ¡á¬« Ñß½¿ ΓÑ»Ñα∞ óδ »«ß¼«Γα¿ΓÑ ¡á «¬¡« ߽Ѫѡ¿∩, óδ
πó¿ñ¿ΓÑ, τΓ« º¡áτÑ¡¿Ñ ch πªÑ αáó¡« 'M' (Γ« ÑßΓ∞ µ¿¬½ πªÑ óδ»«½¡Ñ¡
»«½¡«ßΓ∞ε!). éßÑ ñѽ« ó ½¿Φ¡Ñ⌐ Γ«τ¬Ñ ß ºá»∩Γ«⌐, ¬«Γ«αá∩ ßΓ«¿Γ
ßαáºπ »«ß½Ñ ºáαѺÑαó¿α«óá¡¡«ú« ß½«óá do. êº-ºá ¡ÑÑ µ¿¬½ for
óδ»«½¡∩ÑΓß∩ 13 αẠ»«ñα∩ñ, ß«óÑαΦÑ¡¡« ¡¿τÑú« ¡Ñ ñѽá∩. è«úñá
π»αáó½Ñ¡¿Ñ »ÑαÑñáÑΓß∩ «»ÑαáΓ«απ Write ó ßΓα«¬Ñ 64, ΓѬπΘÑÑ
º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ ch ('M') óδó«ñ¿Γß∩ ¡á φ¬αá¡, ¿ óδ»«½¡Ñ¡¿Ñ
»α«úαá¼¼δ »α«ñ«½ªáÑΓß∩. ôñ὿ó φΓπ ½¿Φ¡εε Γ«τ¬π ß ºá»∩Γ«⌐, ¼δ
πßΓαá¡¿¼ «Φ¿í¬π #3.
ê ÑΘÑ «ñ¡á «Φ¿í¬á... ------------------------------------------
ÆÑ»Ñα∞ »α¿Φ½« óαѼ∩ óº∩Γ∞ß∩ ºá φΓπ ßΓαá¡¡πε «Φ¿í¬π ó
«Γ«íαáªÑ¡¿¿ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ«⌐ ßΓ᫬¿. ìừ¼¡¿¼, τΓ« ó¼ÑßΓ«
»«ß½Ññ¡Ñ⌐ íπ¬óδ óßÑσ (¬α«¼Ñ »«ß½Ññ¡Ñú«) »áαá¼ÑΓα«ó ¬«¼á¡ñ«⌐
ßΓ᫬¿ «Γ«íαáªáÑΓß∩ ¡Ñ¬«Γ«αδ⌐ ß½πτá⌐¡δ⌐ ß¿¼ó«½. 髺¼«ª¡«, íá⌐Γ
ñ½¿¡δ ßΓ᫬¿ ß«ñÑαª¿Γ ¡ÑóÑα¡«Ñ º¡áτÑ¡¿Ñ, ½¿í« ñá¡¡δÑ ßΓ᫬¿ í뫨
ºáΓÑαΓδ ó αѺπ½∞ΓáΓÑ ¬á¬«ú«-Γ« í«½ÑÑ »«ºñ¡Ñú« »α¿ßóá¿óá¡¿∩.
ä½∩ »«¿ß¬á «Φ¿í¬¿ ó«ß»«½∞ºπѼß∩ «¬¡«¼ ߽Ѫѡ¿∩. ì᪼¿ΓÑ
¬½áó¿Φ¿ Alt-F9, óóÑñ¿ΓÑ parmsonheap ¿ ¡áª¼¿ΓÑ Enter. é µ¿¬½Ñ for
»α«ß¼áΓα¿óáεΓß∩ óßÑ »áαá¼ÑΓαδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿, ß«ºñáÑΓß∩ ßó∩º¡δ⌐
ß»¿ß«¬, ¿ ¬áªñá∩ ßΓα«¬á ¬«»¿απÑΓß∩ ó ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞.
ô¬áºáΓѽ∞ Head π¬áºδóáÑΓ ¡á ¡áτὫ ß»¿ß¬á, Tail π¬áºδóáÑΓ ¡á
»«ß½Ññ¡¿⌐ πºÑ½ ß»¿ß¬á, á Temp ¿ß»«½∞ºπÑΓß∩ ó ¬áτÑßΓóÑ óαѼѡ¡«ú«
íπΣÑαá ñ½∩ óδñѽѡ¿∩ ¿ ¿¡¿µ¿á½¿ºáµ¿¿ ¡«ó«ú« πº½á. ū߬«½∞¬π
ñá¡¡δÑ ßΓ᫬¿ í뫨 ºá»«ατÑ¡δ, ¡áª¼¿ΓÑ ¬½áó¿Φπ Ctrl-F7 ¿ ºá¡Ñß¿ΓÑ
ß½ÑñπεΘÑÑ óδαáªÑ¡¿Ñ ó «¬¡« ߽Ѫѡ¿∩:
Tail^.Parm^
Ä¡« »«ºó«½¿Γ ¡á¼ ß½Ññ¿Γ∞ ºá ñá¡¡δ¼¿ ßΓ᫬¿, ¬«Γ«αδÑ σαá¡∩Γß∩
ó »«ß½Ññ¡Ñ¼ πº½Ñ ß»¿ß¬á. è«¡Ñτ¡« ªÑ, φΓ« º¡áτÑ¡¿Ñ íπñÑΓ
íÑßß¼δ߽ѡ¡δ¼, »«¬á »ÑαѼѡ¡á∩ Tail ¡Ñ íπñÑΓ ¿¡¿µ¿á½¿º¿α«óá¡á ó
ßΓα«¬Ñ 207.
é¼ÑßΓ« Γ«ú«, τΓ«íδ óδ»«½¡∩Γ∞ »α«µÑñπαπ ó »«Φáú«ó«¼ αѪ¿¼Ñ,
»α«ßΓ« íπñѼ »α«óÑα∩Γ∞ º¡áτÑ¡¿Ñ ó «¬¡Ñ ߽Ѫѡ¿∩ »«ß½Ñ ¬áªñ«⌐
¿ΓÑαᵿ¿. ÅÑαѼÑßΓ¿ΓÑ ¬παß«α ¬ ßΓα«¬Ñ 208 ¿ ¡áª¼¿ΓÑ ¬½áó¿Φπ F2,
τΓ«íδ πßΓá¡«ó¿Γ∞ ¡á ¡Ñ⌐ Γ«τ¬π «ßΓá¡«óá. ÆÑ»Ñα∞ ¡áª¼¿ΓÑ ¬½áó¿Φπ
F9, τΓ«íδ óδ»«½¡¿Γ∞ »α«úαá¼¼π ñ« φΓ«⌐ ßΓ᫬¿. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ
«»Ñαᵿ«¡¡πε ß¿ßΓѼπ DOS óÑαß¿¿ 3.x, óδ πó¿ñ¿ΓÑ ó «¬¡Ñ ߽Ѫѡ¿∩
»«½¡δ⌐ ¼áαΦαπΓ »α«úαá¼¼δ TPDEMOB.EXE (Ñß½¿ óδ ¿ß»«½∞ºπÑΓÑ DOS
óÑαß¿¿ 2.x, óδ πó¿ñ¿ΓÑ »πßΓπε ßΓ᫬π; ó φΓ«¼ ß½πτáÑ »α«ßΓ« ÑΘÑ
αẠ¡áª¼¿ΓÑ ¬½áó¿Φπ F9, τΓ«íδ ó«º«í¡«ó¿Γ∞ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ).
äá¡¡δÑ ßΓ᫬¿ óδú½∩ñ∩Γ «τÑ¡∞ σ«α«Φ«.
ì᪼¿ΓÑ ¬½áó¿Φπ F9, τΓ«íδ óδ»«½¡¿Γ∞ µ¿¬½ ÑΘÑ αáº. ê ß¡«óá
ñá¡¡δÑ óδú½∩ñ∩Γ σ«α«Φ«. ÆÑ»Ñα∞ óδ º¡áÑΓÑ, τΓ« ñá¡¡δÑ ¬«»¿απεΓß∩ ó
ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »αáó¿½∞¡«. ùΓ«íδ »α«óÑα¿Γ∞, ¡Ñ í뫨 ½¿
ñá¡¡δÑ πªÑ ºá»«ατÑ¡δ, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ «¬¡« »α«óÑન. Å«ñóÑñ¿ΓÑ
¬παß«α ¬ ß½«óπ Head ó ßΓα«¬Ñ 203 ¿ ¡áª¼¿ΓÑ ¬½áó¿Φ¿ Alt-F10 I.
ìáªáó ¬½áó¿Φπ Enter ¿ ºáΓѼ "ßΓαѽ¬π 󡿺", »α«óÑα∞ΓÑ
º¡áτÑ¡¿Ñ, ¡á ¬«Γ«α«Ñ π¬áºδóáÑΓ »ÑαѼѡ¡á∩ Parm. éδ ó¿ñ¿ΓÑ
ß«ñÑন¼«Ñ »Ñαó«ú« πº½á ß»¿ß¬á, ¿ ñá¡¡δÑ ßΓ᫬¿ πªÑ ¿ß¬áªÑ¡δ.
àß½¿ óδ ¡áª¼ÑΓÑ ¬½áó¿Φ¿ Esc, "æΓαѽ¬á 󡿺", á ºáΓѼ ß¡«óá Enter,
óδ «Γ¬α«ÑΓÑ «¬¡« »α«óÑન ñ½∩ óΓ«α«ú« πº½á ß»¿ß¬á. ì᪼¿ΓÑ Enter,
τΓ«íδ »α«óÑα¿Γ∞ ñá¡¡δÑ ßΓ᫬¿. äá¡¡δÑ «ßΓ὿ß∞ ¡ÑΓα«¡πΓ묨 ¿ φΓ«
¿¼Ñ¡¡« ëà πºÑ½, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ »ÑαѼѡ¡á∩ Tail.
Ä»αÑñѽѡ¡« »α«¿ßσ«ñ¿Γ τΓ«-Γ« ßΓαá¡¡«Ñ ß ¬«¡µ«¼ ßΓ᫬¿.
Å« ¼ÑαÑ »«Φáú«ó«ú« óδ»«½¡Ñ¡¿∩ µ¿¬½á ß »«¼«Θ∞ε ¬½áó¿Φ¿ F7
ß½Ññ¿ΓÑ ºá ß«ñÑন¼δ¼ «¬¡á ߽Ѫѡ¿∩. "é¿¡«ó¡¿¬«¼" ∩ó½∩ÑΓß∩ ó맮ó
Σπ¡¬µ¿¿ GetMem ó ßΓα«¬Ñ 199. ä« φΓ«ú« ó맮óá º¡áτÑ¡¿Ñ Tail^.Parm^
αáó¡« first. æαáºπ ªÑ »«ß½Ñ ó맮óá GetMem, »«ß½Ññ¡¿⌐ ß¿¼ó«½
ßΓ᫬¿ »α«»áñáÑΓ.
ùΓ« ªÑ »α«¿ßσ«ñ¿Γ? ä½∩ ¬áªñ«ú« »áαá¼ÑΓαá ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
µ¿¬½ for óδñѽ∩ÑΓ ß¡áτá½á ºá»¿ß∞, ºáΓѼ ßΓ᫬«óδÑ ñá¡¡δÑ, ºáΓѼ
ß½ÑñπεΘπε ºá»¿ß∞ ¿ Γ.ñ. öπ¡¬µ¿∩ GetMem, óδºδóáѼá∩ ó ßΓα«¬Ñ 199,
ñ«½ª¡á óδñѽ∩Γ∞ ñ«ßΓáΓ«τ¡« ¼ÑßΓá ñ½∩ αẼÑΘÑ¡¿∩ ßἫ⌐ ßΓ᫬¿ ¿ ÑÑ
íá⌐Γá ñ½¿¡δ, «ñ¡á¬«, ¬á¬ óδ ¼«ªÑΓÑ ó¿ñÑΓ∞, «¡á ¡Ñ ñ«íáó½∩ÑΓ
Ññ¿¡¿µδ ¬ º¡áτÑ¡¿ε Length(s). ê σ«Γ∩ «»ÑαáΓ«α »α¿ßóá¿óá¡¿∩ ó
ßΓα«¬Ñ 200 »αáó¿½∞¡« óδ»«½¡∩ÑΓ ¬«»¿α«óá¡¿Ñ ßΓ᫬¿, «¡ Σá¬Γ¿τÑ߬¿
íÑαÑΓ ¡á 1 íá⌐Γ í«½∞ΦÑ τѼ í佫 óδñѽѡ« »á¼∩Γ¿. Å«φΓ«¼π »α¿
ó맮óÑ »α«µÑñπαδ New(Temp) »«ß½Ññ¡¿⌐ ß¿¼ó«½ ¬áªñ«⌐ ßΓ᫬¿
»ÑαѬαδóáÑΓß∩ »Ñαóδ¼ íá⌐Γ«¼ ß½ÑñπεΘÑ⌐ ºá»¿ß¿, αẼÑΘÑ¡¡«⌐ ó
»á¼∩Γ¿. Å«ß½Ññ¡¿⌐ »áαá¼ÑΓα «ßΓáÑΓß∩ ¡ÑΓα«¡πΓδ¼, »«Γ«¼π τΓ« ºá ¡¿¼
¡Ñ ß½ÑñπÑΓ ÑΘÑ «ñ¡á ºá»¿ß∞ ParmRec.
é«Γ ¿ óßÑ «Φ¿í¬¿ ó φΓ«⌐ »α«úαá¼¼Ñ (¿ºóÑßΓ¡δÑ). 髺¼«ª¡«, ß
»«¼«Θ∞ε »«Φáú«ó«⌐ «Γ½áñ¬¿ óá¼ πñáßΓß∩ «í¡áαπª¿Γ∞ ÑΘÑ τΓ«-¡¿íπñ∞.
éδ ¼«ªÑΓÑ ¿ß»αáó¿Γ∞ «Φ¿í¬¿ (ñ½∩ πñ«íßΓóá «¡¿ »«¼ÑτÑ¡δ ó ΓѬßΓÑ
ñóπ¼∩ ºóѺñ«τ¬á¼¿) ¿ »ÑαѬ«¼»¿½¿α«óáΓ∞ »α«úαá¼¼π, ½¿í« ºá»πßΓ¿Γ∞
»α«úαá¼¼π TPDEMO.PAS, «»¿ßá¡¡πε ó ú½áóÑ 3, ó ¬«Γ«α«⌐ «ΓßπΓßΓóπεΓ
π¬áºá¡¡δÑ «Φ¿í¬¿.